Получить ключ элемента корзины при использовании метода add_to_cart в Woocommerce - PullRequest
0 голосов
/ 27 августа 2018

Итак, я разрабатываю электронную коммерцию с WooCommerce, добавляю продукт вручную с помощью функции add_to_cart. Я получаю возвращаемое значение add_to_cart (order_item_id) и храню в пользовательской таблице с некоторыми другими значениями.

Проблема в том, что в платежных шлюзах я пытаюсь добавить логику, и мне нужно получить эту информацию из БД, я пытался получить WC () -> cart-> cart_contents, сделать foreach и используйте ключ для выбора в моей пользовательской таблице, но этот ключ является хешем, а значение, возвращаемое функцией add_to_cart, является целым числом.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Обычно, если вы посмотрите в исходном коде метода WC_Cart add_to_cart(), при успешном добавлении в корзину возвращается нужное ключ элемента корзины , как :

$cart_item_key = add_to_cart( $product_id ); 

Теперь вы можете использовать пользовательскую функцию, подключенную к woocommerce_add_to_cart, чтобы получить необходимый cart_item_key и сохранить всю необходимую связанную информацию в вашей пользовательской базе данных.

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

add_action( 'woocommerce_add_to_cart', 'custom_action_add_to_cart', 20, 6 );
function custom_action_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){
    // HERE come your code
}

Этот хук срабатывает каждый раз, когда используется add_to_cart() функция.

0 голосов
/ 27 августа 2018

WooCommerce add_to_cart вернет «ключ хеша», а не целое число. Проверьте вот так.

global $woocommerce;

$addkey = $woocommerce->cart->add_to_cart('product ID', 'quantity');

foreach ( $woocommerce->cart->cart_contents as $cart_item_key => $cart_item ) {
    $cartkey = $cart_item['key'];
}

Вы можете видеть, как $addkey & $cartkey возвращают одно и то же значение.

...