定制运费的Woocommerce折扣优惠券
问题描述:
我已经试过在过去的4个小时里为这个问题寻找答案,我还没有设法找到答案。定制运费的Woocommerce折扣优惠券
我有一个自定义费用添加到我的woocommerce结帐页面。这是由于woocommerce shipping无法提供的复杂的交付计算。
我现在需要创建一张优惠券,以便将此自定义费用设置为零,如果输入优惠券。
这是我的设置我的自定义费用
WC()->cart->add_fee(__('Shipping', 'woocommerce'), $shipping_price);
这是我需要实现。
if($coupon_code == "this-string"){
$shipping_price = 0;
}
我需要一种方法来检查,如果提交的优惠券代码等于“此字符串”,如果是,我需要$运输费用为零。
请大家帮忙,谢谢。
答
以下功能将增加运费到您的woo-commerce购物车,这会增加结帐价格。
// ADD SHIPPING COST
function woo_add_cart_fee() {
WC()->cart->add_fee(__('Shipping', 'woocommerce'), 100);
}
add_action('woocommerce_cart_calculate_fees', 'woo_add_cart_fee');
如果你想定制的优惠券应用到运输费用,你可以做沿着这
// ADD SHIPPING COST
function woo_add_cart_fee() {
$custom_coupon = $_GET["coupon_name"];
if ($custom_coupon = 'discount_code_half') {
WC()->cart->add_fee(__('Shipping', 'woocommerce'), 100);
}elseif ($custom_coupon = 'discount_code_more_than_half') {
WC()->cart->add_fee(__('Shipping', 'woocommerce'), 50);
}elseif ($custom_coupon = 'discount_code_free') {
WC()->cart->add_fee(__('Shipping', 'woocommerce'), 0);
}else (! $custom_coupon) {
WC()->cart->add_fee(__('Shipping', 'woocommerce'), 200);
}
}
add_action('woocommerce_cart_calculate_fees', 'woo_add_cart_fee');
线的东西对于这种方法工作,你需要有一个优惠券按钮提交购物车页面的优惠券名称。
无论是从上一页还是您可以提交到它所在的同一页面。无论哪种方式您的网页将不得不刷新,所以你可以使用
$custom_coupon = $_GET["coupon_name"];
希望此回答可以帮助。 :)
答
您可以拨打WC()->cart->get_applied_coupons()
以获取应用于购物车的所有优惠券。然后您可以检查您的优惠券代码是否在该阵列中。事情是这样的:
if(in_array($coupon_code, WC()->cart->get_applied_coupons())) {
// Do something
}
答
未经检验的,但我认为你会希望在应用代码时做一些事情,所以woocommerce_applied_coupon
钩子是相关的。
function so_46429329_applied_coupon($coupon_code) {
if($coupon_code == "this-string"){
$shipping_price = 0;
WC()->cart->add_fee(__('Shipping', 'woocommerce'), $shipping_price);
}
}
add_action('woocommerce_applied_coupon', 'so_46429329_applied_coupon');
,我还没有测试的部分是,这是否会覆盖现有的“送货费”或者,如果你需要找到一种方法,首先删除。
嗨我试过你的代码。但它没有改变任何东西。我不必重写它。如果我能得到它可以折扣$ shipping_price的价值将工作。你知道我该怎么做吗? –
我可以帮助我创建一个常规优惠券,折扣说.. R50然后我将能够在$ shipping_price的价值。 –
我有一个想法,这就是我发布。 :)它是未经测试的......看起来在参数'($ cooupon_code)'应该是'($ coupon_code)''有一个输入错误...否则条件IF将永远不匹配。查看编辑。如果您启用了“WP_DEBUG”和“WP_DEBUG_LOG”,那么这应该显示在您的调试日志中......当尝试开发自定义功能时,这通常是一个好主意。 – helgatheviking