WooCommerce智能优惠券覆盖"可用优惠券"位置

时间:2016-08-26 11:18:58

标签: php wordpress function woocommerce override

我正在使用带有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' );

2 个答案:

答案 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结帐页面挂钩的漂亮直观列表。