完成订单后,在特定产品的管理端 woocommerce 优惠券代码列表中自动生成一个优惠券代码。

我想动态生成 woocommerce 优惠券代码。

我的要求是,完成订单后,在特定产品的管理端 woocommerce 优惠券代码列表中自动生成一个优惠券代码。

所以任何人都知道我的上述要求解决方案然后请帮助我。

您可以使用 woocommerce_order_status_completed订单完成的 Action Hook 。并创建帖子类型 shop_coupon coupan 使用 wp_insert_post .检查下面的代码

function action_woocommerce_order_status_completed( $order_id ) { 

   $order = wc_get_order( $order_id );

    $order_items = $order->get_items();
    // Iterating through each item in the order
    $item_quantity=0;
    foreach ($order_items as $item_id => $item_data) {

        $item_quantity=$order->get_item_meta($item_id, '_qty', true);
        if($item_quantity>1){
            $product_ids[]=$item_data['product_id'];
            $coupon_code = 'UNIQUECODE'.$order_id.$item_id; // Code
            $amount = '10'; // Amount
            $discount_type = 'fixed_cart'; // Type: fixed_cart, percent, fixed_product, percent_product

            $coupon = array(
                'post_title' => $coupon_code,
                'post_content' => '',
                'post_status' => 'publish',
                'post_author' => 1,
                'post_type'     => 'shop_coupon'
            );

            $new_coupon_id = wp_insert_post( $coupon );

            // Add meta
            update_post_meta( $new_coupon_id, 'discount_type', $discount_type );
            update_post_meta( $new_coupon_id, 'coupon_amount', $amount );
            update_post_meta( $new_coupon_id, 'individual_use', 'no' );
            update_post_meta( $new_coupon_id, 'product_ids',$product_ids );
            update_post_meta( $new_coupon_id, 'exclude_product_ids', '' );
            update_post_meta( $new_coupon_id, 'usage_limit', '' );
            update_post_meta( $new_coupon_id, 'expiry_date', '' );
            update_post_meta( $new_coupon_id, 'apply_before_tax', 'yes' );
            update_post_meta( $new_coupon_id, 'free_shipping', 'no' );
            unset($product_ids);
        }

    }



}; 
// add the action 
add_action( 'woocommerce_order_status_completed', 'action_woocommerce_order_status_completed', 10, 1 );

 

关于wordpress - 如何使用编程代码动态生成woocommerce优惠券代码,

 

//自动应用woocommerce优惠券
add_action( 'woocommerce_before_cart', 'apply_coupon' );
function apply_coupon() {
global $woocommerce;
$coupon_code = 'a';
// $coupon_code = 'Happy Valentine’s Day';
if ( $woocommerce->cart->has_discount( $coupon_code ) ) {
return;
}
$woocommerce->cart->apply_coupon( $coupon_code );
}
//$new_coupon_id = get_post_id_by_title( 'a' );
//error_log('=====aaa=====');
//error_log($new_coupon_id);
//自动变换优惠券值
function change_coupon(){
$coupon_code = 'a'; // Code
$amount = rand(100,1000)/100; // Amount
$discount_type = 'fixed_cart'; // Type: fixed_cart, percent, fixed_product, percent_product
global $wpdb;
$new_coupon_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type = 'shop_coupon' AND post_status = 'publish'", $coupon_code ) );
update_post_meta( $new_coupon_id, 'coupon_amount', $amount );
}
posted @ 2023-11-17 17:58  也许明天  阅读(15)  评论(0编辑  收藏  举报