Для определенных продуктов в заказах WooCommerce с завершенным статусом выполните действие - PullRequest
1 голос
/ 23 мая 2019

В WooCommerce я хотел бы выполнить действие, если куплен хотя бы один товар из списка и если текущий статус заказа для этого товара завершен.

Например, я могу только проверить, куплен ли товар:

global $woocommerce;
$user_id = get_current_user_id();
$current_user= wp_get_current_user();
$product_list = array('11', '12', '13', '14', '15','16');
$text= false;
  foreach ($product_list as $value):
    if (wc_customer_bought_product( $customer_email, $user_id, $value) ) {
        $text = true;
     }
  endforeach;

1 Ответ

0 голосов
/ 23 мая 2019

Попробуйте следующую подключенную функцию, которая будет срабатывать каждый раз, когда заказ получает статус «выполнено», проверяя, есть ли у текущего заказа продукт из определенного вами списка, что позволяет вам выполнить действие:

add_action('woocommerce_order_status_completed', 'action_on_order_status_completed', 10, 2 );
function action_on_order_status_completed( $order_id, $order ){
    // Here below your product list
    $products_ids = array('11', '12', '13', '14', '15','16');
    $found = false;

    // Loop through order items
    foreach ( $order->get_items() as $item ) {
        if ( in_array($item->product_id(), $products_ids) ) {
            $found = true;
            break;
        }
    }

    if ( $found ) {
        // HERE do your action
    }
}

Код помещается в файл functions.php вашей активной дочерней темы (или активной темы). Протестировано и работает.


Похожие: Как получить детали заказа WooCommerce

...