woocommerce买一,送小产品

// 检查购物车中是否包含指定的购买产品和赠品产品
function check_and_apply_coupon() {
    // 获取购物车中的项目
    $cart_items = WC()->cart->get_cart();

    // 设置要检查的产品ID
    $product_id_to_check = 213976;

    // 初始化一个变量来标识产品是否存在于购物车中
    $product_found = false;

    // 遍历购物车中的每个项目
    foreach ($cart_items as $cart_item_key => $cart_item) {
        // 检查产品ID是否匹配
        if ($cart_item['variation_id'] == $product_id_to_check) {
            // 找到了指定的产品
            $product_found = true;
            break;
        }
    }

    // 如果找到了指定产品,确保购物车没有应用其他优惠券,然后应用优惠券
    if ($product_found) {
        // 应用优惠券代码
        $coupon_code = '9FREAMBN'; // 替换为你的优惠券代码

        // 检查购物车是否已经应用了该优惠券
        $applied_coupons = WC()->cart->get_applied_coupons();

        if (!in_array($coupon_code, $applied_coupons)) {
            // 移除已应用的所有优惠券
            WC()->cart->remove_coupons();

            // 应用优惠券
            WC()->cart->apply_coupon($coupon_code);
        }else {
        // 如果购物车中没有找到指定产品,移除优惠券
        WC()->cart->remove_coupons(array('9FREAMBN'));
    }
    }
}

// 在购物车页面和结账页面的顶部执行检查和应用优惠券
add_action('woocommerce_before_cart', 'check_and_apply_coupon');
add_action('woocommerce_before_checkout_form', 'check_and_apply_coupon');

逻辑说明
实现逻辑:后台先创建优惠卷,然后正好20块钱,适用于所有的case: 259,257,255,253,243,239,这些数字是case的id,然后获取到购物车里面的所有产品,如果包含32A black extension这个产品和一个case,20块钱的优惠卷就可以自动使用,他如果把32A black extension,从购物车删除,优惠卷也自动清空,为了避免薅羊毛,他单独购买case,然后单独去填入优惠卷代码去买,我这个优惠卷设置了最低消费300块,也就是买16个case才能用这个优惠卷。

注意获取简单产品的id和复杂产品的id是不一样的

要获取 foreach 循环中每个购物车商品的产品 ID(对于简单产品):

foreach( WC()->cart->get_cart() as $cart_item ){
    $product_id = $cart_item['product_id'];
}

可变产品,获取变体ID:

foreach( WC()->cart->get_cart() as $cart_item ){
    $variation_id = $cart_item['variation_id'];
}

单独使用优惠卷

function check_and_apply_coupon() {
    // 应用优惠券代码
    $coupon_code = '9FREAMBN'; // 替换为你的优惠券代码

    // 检查购物车是否已经应用了该优惠券
    $applied_coupons = WC()->cart->get_applied_coupons();
    if (!in_array($coupon_code, $applied_coupons)) {
        WC()->cart->apply_coupon($coupon_code);
    }
}

// 在购物车页面和结账页面的顶部执行检查和应用优惠券
add_action('woocommerce_before_cart', 'check_and_apply_coupon');
add_action('woocommerce_before_checkout_form', 'check_and_apply_coupon');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 WooCommerce 产品页的例子,包括产品标题、描述、价格、图像和购选项: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>WooCommerce 产品页</title> </head> <body> <div> <h1><?php the_title(); ?></h1> <p><?php the_content(); ?></p> <p>价格:<?php echo get_post_meta(get_the_ID(), '_regular_price', true); ?></p> <?php if (has_post_thumbnail()): ?> <img src="<?php the_post_thumbnail_url(); ?>" alt="<?php the_title(); ?>"> <?php endif; ?> <form class="woocommerce-cart-form" action="<?php echo esc_url(apply_filters('woocommerce_add_to_cart_form_action', $product->get_permalink())); ?>" method="post" enctype="multipart/form-data"> <?php do_action('woocommerce_before_add_to_cart_button'); ?> <div class="woocommerce-variation-add-to-cart variations_button woocommerce-variation-add-to-cart-enabled"> <div class="woocommerce-variation-add-to-cart variations_button woocommerce-variation-add-to-cart-enabled"> <div class="quantity"> <input type="number" class="input-text qty text" name="quantity" value="1" title="数量" inputmode="numeric"> </div> <button type="submit" class="single_add_to_cart_button button alt"><?php echo esc_html($product->single_add_to_cart_text()); ?></button> <input type="hidden" name="add-to-cart" value="<?php echo absint($product->get_id()); ?>"> </div> </div> <?php do_action('woocommerce_after_add_to_cart_button'); ?> </form> </div> </body> </html> ``` 请注意,这只是一个基本的模板,您可能需要根据您的特定需求进行修改和定制。此外,还需要确保正确配置 WooCommerce 设置和产品选项,以便使产品页面正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值