如果使用特定的优惠券,在 WooCommerce Order Received 页面上显示自定义文本
Display custom text on WooCommerce Order Received page if specific coupons are used
如果结账时使用了三个特定优惠券代码之一,我将尝试在 Woocommerce 订单接收页面上显示自定义感谢消息。
我们的 Woocommerce 版本是 2.6.11。
我尝试了以下代码的一些变体,但无法正常工作,我做错了什么吗?
//show custom coupon thankyou
function coupon_thankyou($order_id) {
$coupon_id = '1635';
$order = wc_get_order($order_id);
foreach( $order->get_items('coupon') as $coupon_item ){
if( $coupon_item->get_code() = $coupon_id ){
echo '<p>This is an custom thank you.</p>';
}
}
}
add_action('woocommerce_thankyou','coupon_thankyou');
您的 IF 语句条件有误,其中 =
必须替换为 ==
或 ===
。同样对于优惠券,您需要使用优惠券代码 slug(但不是 post ID)。
要在收到订单的页面上显示消息,最好使用 woocommerce_thankyou_order_received_text
过滤器钩子,这样 (对于 Woocommerce 3+):
// On "Order received" page (add a message)
add_filter( 'woocommerce_thankyou_order_received_text', 'thankyou_applied_coupon_message', 10, 2 );
function thankyou_applied_coupon_message( $text, $order ) {
$coupon_code = '1635'; // coupon code name
foreach( $order->get_items('coupon') as $coupon ){
if( $coupon->get_code() === $coupon_code ){
$text .= '<p>'.__("This is an custom thank you.").'</p>';
}
}
return $text;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。现在应该可以使用了。
已更新
对于 3.0 之前的 Woocommerce 版本,您应该使用以下内容代替:
// On "Order received" page (add a message)
add_action( 'woocommerce_thankyou', 'thankyou_applied_coupon_message', 10, 1 );
function thankyou_applied_coupon_message( $order_id ) {
$coupon_code = '1635'; // coupon code name
$order = wc_get_order( $order_id );
foreach( $order->get_items('coupon') as $coupon ){
if( $coupon['name'] === $coupon_code ){
echo '<p>'.__("This is an custom thank you.").'</p>';
}
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
如果结账时使用了三个特定优惠券代码之一,我将尝试在 Woocommerce 订单接收页面上显示自定义感谢消息。
我们的 Woocommerce 版本是 2.6.11。
我尝试了以下代码的一些变体,但无法正常工作,我做错了什么吗?
//show custom coupon thankyou
function coupon_thankyou($order_id) {
$coupon_id = '1635';
$order = wc_get_order($order_id);
foreach( $order->get_items('coupon') as $coupon_item ){
if( $coupon_item->get_code() = $coupon_id ){
echo '<p>This is an custom thank you.</p>';
}
}
}
add_action('woocommerce_thankyou','coupon_thankyou');
您的 IF 语句条件有误,其中 =
必须替换为 ==
或 ===
。同样对于优惠券,您需要使用优惠券代码 slug(但不是 post ID)。
要在收到订单的页面上显示消息,最好使用 woocommerce_thankyou_order_received_text
过滤器钩子,这样 (对于 Woocommerce 3+):
// On "Order received" page (add a message)
add_filter( 'woocommerce_thankyou_order_received_text', 'thankyou_applied_coupon_message', 10, 2 );
function thankyou_applied_coupon_message( $text, $order ) {
$coupon_code = '1635'; // coupon code name
foreach( $order->get_items('coupon') as $coupon ){
if( $coupon->get_code() === $coupon_code ){
$text .= '<p>'.__("This is an custom thank you.").'</p>';
}
}
return $text;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。现在应该可以使用了。
已更新
对于 3.0 之前的 Woocommerce 版本,您应该使用以下内容代替:
// On "Order received" page (add a message)
add_action( 'woocommerce_thankyou', 'thankyou_applied_coupon_message', 10, 1 );
function thankyou_applied_coupon_message( $order_id ) {
$coupon_code = '1635'; // coupon code name
$order = wc_get_order( $order_id );
foreach( $order->get_items('coupon') as $coupon ){
if( $coupon['name'] === $coupon_code ){
echo '<p>'.__("This is an custom thank you.").'</p>';
}
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。