我使用的是带有WooCommerce 2.6.4和智能优惠券3.1.2插件的Wordpress 4.6。我想将“可用优惠券”部分从我的结账页面的顶部移到底部。
在插件文件中,我检测到了这个结构和我需要更改的操作。
我需要将它更改为“woocommerce_after_checkout_form”,但是我不知道如何从functions.php文件中覆盖它。
我已经尝试过直接从插件更改它,它的工作方式和我一样,但我们都知道这是一种错误的方式来编辑插件的行为。
任何帮助和文档都会很有帮助。
class WC_Smart_Coupons {
...
public function __construct() {
...
add_action( 'woocommerce_before_checkout_form', array( $this, 'show_available_coupons_before_checkout_form' ), 11 );
...
}
}
...
function initialize_smart_coupons() {
$GLOBALS['woocommerce_smart_coupon'] = new WC_Smart_Coupons();
}
add_action( 'plugins_loaded', 'initialize_smart_coupons' );发布于 2016-09-17 21:19:53
所以,我今天也遇到了类似的问题。您可以执行以下操作,将该部分移动到不同的位置。
要删除,请执行以下操作:
remove_action( 'woocommerce_before_checkout_form', array( $GLOBALS['woocommerce_smart_coupon'], 'show_available_coupons_before_checkout_form' ), 11 );要添加:
add_action( 'any_action', array( $GLOBALS['woocommerce_smart_coupon'], 'show_available_coupons_before_checkout_form' ), 11 );发布于 2020-12-03 18:16:28
接受的解决方案不适用于我使用的智能优惠券版本(4.12.2)。
要更改“可用优惠券”位置,请使用以下内容:
$obj_inst = WC_SC_Display_Coupons::get_instance();
remove_action( 'woocommerce_before_checkout_form', array( $obj_inst, 'show_available_coupons_before_checkout_form' ), 11 );
add_action( 'woocommerce_checkout_after_customer_details', array( $obj_inst, 'show_available_coupons_before_checkout_form' ), 11 );在here上可以找到一个漂亮的woocommerce结账页面钩子列表。
https://stackoverflow.com/questions/39165083
复制相似问题