Получение идентификатора продукта из wc_get_order в Woocmmerce
Мои крючки находятся в папке темы / функции.РНР
Я хочу связать крючок с 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
Является ответом!

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) {
// ....
}
}
}
Помочь в развитии проекта: