Я добавил новый пользовательский тип записи 'giftcard' и расширил простой продукт WooCommerce, добавив флажок 'Gift Card'
Всякий раз, когда статус заказа изменяется на «обработка» и он содержит подарочную карту типа продукта, он создает новую публикацию подарочной карты, используя следующий код
function status_order_processing( $order_id ) {
$order = wc_get_order( $order_id );
$items = $order->get_items();
foreach ( $items as $item ) {
$is_gift_card = get_post_meta( $item['product_id'], '_woo_giftcard', true );
if($is_gift_card == 'yes'){
$token = base64_encode(openssl_random_pseudo_bytes(32));
$token = bin2hex($token);
$hyphen = chr(45);
$uuid = substr($token, 0, 8).$hyphen
.substr($token, 8, 4).$hyphen
.substr($token,12, 4).$hyphen
.substr($token,16, 4).$hyphen
.substr($token,20,12);
$gift_card = array(
'post_title' => $uuid,
'post_status' => 'publish',
'post_type' => 'giftcard',
);
$gift_card_id = wp_insert_post( $gift_card, $wp_error );
update_post_meta( $gift_card_id, 'woo_gift_card_amount', (int)$item['total'] );
}
}
add_action( 'woocommerce_order_status_processing', 'status_order_processing' );
Имя нового сообщения - это токен, сгенерированный в приведенном выше коде, и общее количество сохраненных элементов в метаполе 'woo_gift_card_amount'.
Есть ли способ, если я введу токен типа подарочной карты в поле купона, и он вычтет сумму из суммы Заказа в соответствии с мета-полем 'woo_gift_card_amount' этого сообщения.
Любая помощь будет оценена.