我正在使用带有WooCommerce 2.6.4和Smart Coupon 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' );
答案 0 :(得分:2)
所以,今天我遇到了类似的问题。您可以执行以下操作将该部分移动到其他位置。
删除:
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 );
答案 1 :(得分:0)
接受的解决方案不适用于我使用的Smart Coupons版本(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结帐页面挂钩的漂亮直观列表。