本文整理汇总了PHP中wc_downloadable_product_permissions函数的典型用法代码示例。如果您正苦于以下问题:PHP wc_downloadable_product_permissions函数的具体用法?PHP wc_downloadable_product_permissions怎么用?PHP wc_downloadable_product_permissions使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wc_downloadable_product_permissions函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save
/**
* Save meta box data.
*
* @param int $post_id
* @param WP_Post $post
*/
public static function save($post_id, $post)
{
global $wpdb;
// Order data saved, now get it so we can manipulate status
$order = wc_get_order($post_id);
// Handle button actions
if (!empty($_POST['wc_order_action'])) {
$action = wc_clean($_POST['wc_order_action']);
if (strstr($action, 'send_email_')) {
do_action('woocommerce_before_resend_order_emails', $order);
// Ensure gateways are loaded in case they need to insert data into the emails
WC()->payment_gateways();
WC()->shipping();
// Load mailer
$mailer = WC()->mailer();
$email_to_send = str_replace('send_email_', '', $action);
$mails = $mailer->get_emails();
if (!empty($mails)) {
foreach ($mails as $mail) {
if ($mail->id == $email_to_send) {
$mail->trigger($order->get_id());
/* translators: %s: email title */
$order->add_order_note(sprintf(__('%s email notification manually sent.', 'woocommerce'), $mail->title), false, true);
}
}
}
do_action('woocommerce_after_resend_order_email', $order, $email_to_send);
// Change the post saved message
add_filter('redirect_post_location', array(__CLASS__, 'set_email_sent_message'));
} elseif ('regenerate_download_permissions' === $action) {
$data_store = WC_Data_Store::load('customer-download');
$data_store->delete_by_order_id($post_id);
wc_downloadable_product_permissions($post_id, true);
} else {
if (!did_action('woocommerce_order_action_' . sanitize_title($action))) {
do_action('woocommerce_order_action_' . sanitize_title($action), $order);
}
}
}
}
示例2: woocommerce_downloadable_product_permissions
/**
* @deprecated
*/
function woocommerce_downloadable_product_permissions($order_id)
{
wc_downloadable_product_permissions($order_id);
}
示例3: save
/**
* Save meta box data
*/
public static function save($post_id, $post)
{
// Order data saved, now get it so we can manipulate status
$order = wc_get_order($post_id);
// Handle button actions
if (!empty($_POST['wc_order_action'])) {
$action = wc_clean($_POST['wc_order_action']);
if (strstr($action, 'send_email_')) {
do_action('woocommerce_before_resend_order_emails', $order);
// Ensure gateways are loaded in case they need to insert data into the emails
WC()->payment_gateways();
WC()->shipping();
// Load mailer
$mailer = WC()->mailer();
$email_to_send = str_replace('send_email_', '', $action);
$mails = $mailer->get_emails();
if (!empty($mails)) {
foreach ($mails as $mail) {
if ($mail->id == $email_to_send) {
$mail->trigger($order->id);
}
}
}
do_action('woocommerce_after_resend_order_email', $order, $email_to_send);
} elseif ($action == 'regenerate_download_permissions') {
delete_post_meta($post_id, '_download_permissions_granted');
wc_downloadable_product_permissions($post_id);
} else {
do_action('woocommerce_order_action_' . sanitize_title($action), $order);
}
}
}
示例4: update_order_data
/**
* Update order data
*
* Based on WC_API_Customers::update_customer_data()
*
* @since 3.0.0
* @param \WC_Order $order
* @param array $data
* @param array $options
*/
private function update_order_data(WC_Order $order, $data, $options)
{
if (isset($data['date']) && $data['date']) {
wp_update_post(array('ID' => $order->id, 'post_date' => date('Y-m-d H:i:s', $data['date'])));
}
$merging = $options['merge'] && isset($data['id']) && $data['id'];
$this->process_terms($order->id, $data['terms']);
// set order addresses
$order->set_address($data['billing_address'], 'billing');
$order->set_address($data['shipping_address'], 'shipping');
// clear any previously set refunded order item ids
$this->refunded_item_order_ids = array();
// set order lines
foreach ($this->line_types as $line_type => $line) {
// don't set lines if they're empty. This ensures partial updates/merges
// are supported and won't wipe out order lines
if (!empty($data[$line]) && is_array($data[$line])) {
$this->process_items($order, $data[$line], $line_type, $merging);
}
}
// set order currency
if (isset($data['currency'])) {
update_post_meta($order->id, '_order_currency', $data['currency']);
}
// grant downloadable product permissions
if (isset($data['download_permissions_granted']) && $data['download_permissions_granted']) {
wc_downloadable_product_permissions($order->id);
}
// set order meta
if (isset($data['order_meta']) && is_array($data['order_meta'])) {
$this->set_order_meta($order->id, $data['order_meta']);
}
// set the paying customer flag on the user meta if applicable
$paid_statuses = array('processing', 'completed', 'refunded');
if ($data['customer_id'] && in_array($data['status'], $paid_statuses)) {
update_user_meta($data['customer_id'], "paying_customer", 1);
}
// process refunds
if (!empty($data['refunds'])) {
// remove previous refunds
foreach ($order->get_refunds() as $refund) {
wc_delete_shop_order_transients($refund->id);
wp_delete_post($refund->id, true);
}
foreach ($data['refunds'] as $refund_data) {
// try mapping temp refunded item ids to real order item ids
if (!empty($refund_data['line_items'])) {
foreach ($refund_data['line_items'] as $key => $refunded_item) {
if (isset($refunded_item['refunded_item_temp_id'])) {
$temp_id = $refunded_item['refunded_item_temp_id'];
// get the real order item id for this refunded itme
$order_item_id = $this->get_array_key_value($this->refunded_item_order_ids, $temp_id);
if ($order_item_id) {
$refund_data['line_items'][$order_item_id] = $refunded_item;
unset($refund_data['line_items'][$key]);
}
}
}
}
wc_create_refund(array('order_id' => $order->id, 'amount' => $refund_data['amount'], 'reason' => $refund_data['reason'], 'line_items' => $refund_data['line_items'], 'date' => $refund_data['date']));
}
}
wc_delete_shop_order_transients($order->id);
/**
* Triggered after order data has been updated via CSV
*
* This will be triggered for both new and updated orders
*
* @since 3.0.0
* @param int $id Order ID
* @param array $data Order data
* @param array $options Import options
*/
do_action('wc_csv_import_suite_update_order_data', $order->id, $data, $options);
}