- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个插件,可以将倡导者推荐优惠券代码发送到他们输入的电子邮件中。当观众收到这封电子邮件时,我想创建一个流程,他们可以点击电子邮件中的“立即购买”,优惠券将自动添加。
截至目前,对于“立即购买”按钮下的链接,我输入了以下内容:
websitename.biz/cart__trashed?code=DISCOUNTCODE
为了处理 $code
,我将它放在我的 functions.php 文件中:
add_action('woocommerce_before_cart', 'discount');
function discount( ) {
global $woocommerce;
$code= $_GET["code"];
if(!empty($code)){
if($woocommerce->cart->add_discount($code)){
echo '<div class="woocommerce_message"><strong>Applied coupon!</strong></div>';
}
}
}
我现在面临的问题是:
我相信是因为购物车是空的,代码不起作用。
只希望在观众点击链接时应用代码。
我怎样才能让它工作?
最佳答案
正确的做法应该是:
You can set any existing coupon code from any Url (like shop page, other archives pages, products pages, my account pages, or any existing pages) adding to this existing url:
?code=DISCOUNTCODE
at the end (whereDISCOUNTCODE
is your coupon code name).
代码如下:
// Set coupon code as custom data in cart session
add_action('wp_loaded', 'add_coupon_code_to_cart_session');
function add_coupon_code_to_cart_session() {
// Exit if no code in URL or if the coupon code is already set cart session
if( empty( $_GET["code"] ) || WC()->session->get( 'custom_discount' ) ) return;
if( ! WC()->session->get( 'custom_discount' ) ) {
$coupon_code = esc_attr($_GET["code"]);
WC()->session->set( 'custom_discount', $coupon_code );
// If there is an existing non empty cart active session we apply the coupon
if( ! WC()->cart->is_empty() ){
WC()->cart->add_discount( $coupon_code );
}
}
}
// Add coupon code when a product is added to cart once
add_action('woocommerce_add_to_cart', 'add_coupon_code_to_cart', 10, 6 );
function add_coupon_code_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ){
$coupon_code = WC()->session->get( 'custom_discount' );
$applied_coupons = WC()->session->get('applied_coupons');
if( empty($coupon_code) || in_array( $coupon_code, $applied_coupons ) ) return;
WC()->cart->add_discount( $coupon_code );
}
// Remove coupon code when user empty his cart
add_action('woocommerce_cart_item_removed', 'check_coupon_code_cart_items_removed', 10, 6 );
function check_coupon_code_cart_items_removed( $cart_item_key, $cart ){
$coupon_code = WC()->session->get( 'custom_discount' );
if( $cart->has_discount( $coupon_code ) && $cart->is_empty() );
$cart->remove_coupon( $coupon_code );
}
代码位于您的事件子主题(或事件主题)的 function.php 文件或任何插件文件中。
这已经过测试并且有效
关于php - 即使 WooCommerce 中的购物车为空,也可以通过 URL 中的 GET 方法应用优惠券折扣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46814228/
我试图了解如何返回多个值。现在,我的代码设置为为任何具有一个兑换代码的代码返回单个对象(redeemDisc)。我的问题是,如果一个代码有多个兑换代码,它只会返回“多个折扣”。我试图了解如何将“red
我有一个函数discount,它接受一个“rate”参数( double )并将我的类中的私有(private)变量netPrice更新为减价。计算看似可行,但有一个问题;它会产生不准确的结果。 pu
我正在尝试获得折扣以应用于我编写的购物车。我正在使用 Adaptive API 系统,但我似乎无法正确使用它。我在 SetPaymentOptions 调用中尝试过: 'receiverO
我在尝试为我的程序创建 switch 语句时陷入困境。为了充分披露,这是明天到期的家庭作业。我应该使用 switch 语句来为所售 CD 的总费用指定折扣率。黄金级折扣 15%,银级折扣 10%,铜级
我的动画遵循这个计时函数:cubic-bezier(0.25, 0.1, 0.25, 1.0) 我想修改这个函数,所以我只得到它的结尾 40%。为了让事情变得简单,我们可以说我想要函数的最后 50%。
Paypal 的新手。在协会网站上使用“立即购买”按钮,适用于单价商品。 但是,现在客户想要设置折扣功能。我认为逻辑很简单,但就我的生活而言,我不了解文档或如何让它正常工作。 这是设置。高尔夫郊游,有
Array ( [return] => http://www.example.com/ [cancel] => http://www.example.com/ [currenc
Paypal 列出了折扣的方法,例如: discount_amount 可选与项目关联的折扣金额。它必须低于商品的售价。如果您指定 discount_amount 且未定义 discount_amou
我在 woocommerce 中有很多产品(将近 30,000 个)。常规价格已设置正确,现在我想将销售价格设置为具有一定折扣百分比的常规价格。我尝试使用一些插件,但由于产品数量,我总是遇到 PHP
如何应用税收、小计折扣以及计算总计? 我的这些段落具有以下 ID 15000 10 // In percentage 1000 // Grandtotal will be calculated an
有人知道与Stripe一次性交易是否可以接受优惠券吗? 我知道您可以添加带有定期订阅的优惠券,但我只希望能够提供一次性付款折扣。 最佳答案 我认为这里的想法是,您可以完全控制单个费用(或一次性付款,无
当产品价格为零或 100% 折扣时,我需要一个解决方案来隐藏产品页面上的“添加到购物车”按钮 我认为以下代码可能用于添加到购物车部分此代码位于以下路径中mytheme/woocommerce/单一产品
我希望为特定的可变产品设置特定的折扣,如果客户购买一种产品,他们会以 50% 的折扣获得另一种(相同的)(买一个 50% 的折扣)。我试过很多折扣插件,我发现最接近的是: WooCommerce 的定
在我上一个问题之后 WooCommerce discount: buy one get one 50% off 每当特定产品(不是所有产品)添加到购物车时,我想向购物车添加自定义通知。 我想先检查数量
我是一名优秀的程序员,十分优秀!