Передать подарок из корзины в заказ Woocommerce
есть условие, если сумма товара больше 1100, добавляем к товару подарок, подарок выводится но как его передать дальше в заказ?
<?php
if ( ! is_admin() ) {
global $woocommerce;
$cart_total_prod1 = 1100;
$cart_total_prod2 = 1500;
$cart_total_prod3 = 2000;
if( $woocommerce->cart->total >= $cart_total_prod1 && $woocommerce->cart->total <= $cart_total_prod2) {
echo "подарок 1";
}
if( $woocommerce->cart->total >= $cart_total_prod2 && $woocommerce->cart->total <= $cart_total_prod3) {
echo "подарок 2";
}
if( $woocommerce->cart->total >= $cart_total_prod3) {
echo "подарок 3";
}
}
?>
Ответы (1 шт):
Автор решения: WP Punk
→ Ссылка
На хук woocommerce_checkout_update_order_meta, сохраняете подарок в заказ:
add_action( 'woocommerce_checkout_update_order_meta', 'add_gift' );
function add_gift( $order_id ) {
$order = new \WC_Order( $order_id );
if ( $order->get_total() > 1100 ) {
$order->->update_meta_data( '_gift', 'Gift 1' );
}
// ...
}
На хук woocommerce_admin_order_items_after_line_items или любой, который вам нравится выводите данные:
add_action( 'woocommerce_admin_order_items_after_line_items', 'show_gift_in_admin' );
function show_gift_in_admin( $order_id ) {
$order = new \WC_Order( $order_id );
$gift = $order->get_meta( '_gift' );
if ( ! $gift ) {
return;
}
?>
<tr>
<td colspan="6"><?php echo $gift; ?></td>
</tr>
<?php
}