Php “WooCommerce智能优惠券优先”;可用优惠券“;位置

Php “WooCommerce智能优惠券优先”;可用优惠券“;位置,php,wordpress,function,woocommerce,overriding,Php,Wordpress,Function,Woocommerce,Overriding,我正在使用WoodCommerce 2.6.4和智能优惠券3.1.2插件的Wordpress 4.6。 我想将“可用优惠券”部分从结帐页面的顶部移至底部 在插件文件中,我检测到了这个结构和需要更改的操作 我需要将其更改为“woocommerce\u after\u checkout\u form”,但我无法了解如何从functions.php文件中重写它 我已经尝试直接从插件更改它,它的工作原理与我一样,但我们都知道,编辑插件行为的方法是错误的 任何帮助和文档都会非常有用 class WC_Sm

我正在使用WoodCommerce 2.6.4和智能优惠券3.1.2插件的Wordpress 4.6。 我想将“可用优惠券”部分从结帐页面的顶部移至底部

在插件文件中,我检测到了这个结构和需要更改的操作

我需要将其更改为“woocommerce\u after\u checkout\u 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' );

所以,我今天也有类似的问题。您可以执行以下操作将该部分移动到其他位置

删除:

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 );

接受的解决方案不适用于我使用的智能优惠券版本(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 );

可以找到woocommerce签出页面挂钩的一个漂亮的视觉列表。

这是我迄今为止通过检查文档所做的,但它不起作用:
函数remove\u plugin\u actions(){global$WC\u Smart\u优惠券;remove\u action('woocommerce\u before\u checkout\u form',array($WC_Smart_coups,'show_available_coups_before_checkout_form',11)}add_action('woocommerce_before_checkout_form','remove_plugin_actions');
Brilliant,Yalamber!我曾尝试使用传统文档作为参考,但无法使用。您的解决方案改为有效!谢谢,您保存了插件更新(也许更多,我甚至会在其他人身上尝试这种方法。):)很高兴它也对你有帮助。)你知道为什么在WooCommerce智能优惠券V4.7.0中这种方法不起作用吗?奇怪的是,即使我编辑/plugins/woocommerce smart-coups/includes/class-sc-display-coups.php并删除或修改构造函数中的所有操作,它仍然会出现在签出页面上?