Php 我如何为WordPress编写一个webhook,允许我使用一个优惠券代码进行两次单独的折扣?
我有一个客户想为WordPress/WooCommerce结账添加优惠券。通常我只需进入WooCommerce>优惠券并创建优惠券 然而,他们想要一个优惠券代码为两种不同的产品提供产品折扣。本例中的产品为入场券Php 我如何为WordPress编写一个webhook,允许我使用一个优惠券代码进行两次单独的折扣?,php,wordpress,woocommerce,hook,webhooks,Php,Wordpress,Woocommerce,Hook,Webhooks,我有一个客户想为WordPress/WooCommerce结账添加优惠券。通常我只需进入WooCommerce>优惠券并创建优惠券 然而,他们想要一个优惠券代码为两种不同的产品提供产品折扣。本例中的产品为入场券 优惠券代码名称为=“COUPON1” “产品A”在工作日为15.95美元(产品ID=2846) 周末“产品A”为17.95美元(产品ID=2848) “产品B”在工作日为10.95美元(产品ID=2847) 周末“产品B”的价格为12.95美元(产品ID=2849) 产品A工作日和周末
- 优惠券代码名称为=“COUPON1”
- “产品A”在工作日为15.95美元(产品ID=2846)
- 周末“产品A”为17.95美元(产品ID=2848)
- “产品B”在工作日为10.95美元(产品ID=2847)
- 周末“产品B”的价格为12.95美元(产品ID=2849)
- 产品A工作日和周末票的折扣均为11.95美元
- 产品B的折扣是8.95美元的工作日和周末票
提前谢谢。我不认为一个优惠券代码就可以做到这一点。起初,我以为你需要一个工作日和周末的优惠券代码来自动更改,但要为两种不同的产品提供不同的折扣是不可能的 您可以做的是动态地添加第二张优惠券。在后端有一张只控制产品B的“秘密”优惠券(使用优惠券限制-选择仅受影响的产品B) 然后每次产品B进入购物车时动态添加和调整优惠券:
define('PRODUCT_B_ID', 2487);
add_filter( 'woocommerce_add_to_cart_handler', 'apply_secret_coupon', 50, 2);
function apply_secret_coupon($product_type, $product){
if ($product->get_id() == PRODUCT_B_ID){
$calculated_discount_amount = 15.22;
$secret_coupon = new WC_Coupon('MySecretCoupon');
$secret_coupon->set_amount($calculated_discount_amount);
$secret_coupon->save();
WC()->cart->apply_coupon('MySecretCoupon');
}
return $product_type;
}
我注意到您使用的产品ID很少。如果您根据自己的需要修改此代码,它可以为您提供一个解决方案。以下是我所做的,以防将来有人想这样做:
你可以用一个插件来建立这样的结构。你知道这样的插件吗?我有很多WooCommerce插件,它们总是为新的附加组件收费。所以我打赌这会奏效,但我今天又尝试了一次,并且能够利用WooCommerce的定价和折扣插件。我给自己发了一封回复,回复/描述更长。听起来不错。确保流程一直正常运行(检查发送的电子邮件以确保折扣看起来正常)。伟大的解决方案!