Получение идентификатора продукта из wc_get_order в Woocmmerce

Получение идентификатора продукта из wc_get_order в Woocmmerce

20.11.2019 09:27:32 Просмотров 66 Источник

Мои крючки находятся в папке темы / функции.РНР

Я хочу связать крючок с product_id от заказа.

попробуйте этот метод, но они ничего не возвращают.

$product->get_id()
or
$product = wc_get_product( $product_id );

Полный код

add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
function so_payment_complete($order_id)
{
    $order = wc_get_order($order_id);
    $billingEmail = $order->billing_email;
    $billingName = $order->billing_first_name;
    $product_id = $order->product_id;

    if ($product_id == 980) {
       ......
    }
У вопроса есть решение - Посмотреть?

Ответы - Получение идентификатора продукта из wc_get_order в Woocmmerce / Getting Product ID from wc_get_order in Woocmmerce

Является ответом!
Snuwerd

20.11.2019 10:25:59

Если вы используете версию Woocommerce 3.0+, то это должно быть так.

Я нашел ответ по этой ссылке: https://wordpress.stackexchange.com/questions/97176/get-product-id-from-order-id-in-woocommerce

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

add_action( 'woocommerce_payment_complete', 'so_payment_complete' );
function so_payment_complete($order_id)
{
    $order = wc_get_order($order_id);
    $billingEmail = $order->billing_email;
    $billingName = $order->billing_first_name;

    $items = $order->get_items();

    foreach ( $items as $item ) {
        $product_name = $item->get_name();
        $product_id = $item->get_product_id();
        $product_variation_id = $item->get_variation_id();
        if ($product_id == 980) {
            // ....
        }
    }
}
Закрыть X