问题:
在结帐页面(form-checkout.php)上,以下操作代码在相同的位置(相互之间)调用检查订单和支付方法部分
do_action('woocommerce_checkout_order_review');但是,我希望order review和payment method部分是分开的,即在结帐页面上的不同地方分别调用它们。
解决方案尝试:
我在这里看到了指导,并找到了includes/wc-template-hooks.php文件,其中使用以下代码创建了上面的操作:
add_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
add_action('woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );因此,为了单独测试和调用支付部分,我返回到form-checkout.php并尝试如下:
do_action( 'woocommerce_checkout_payment' );或者这个
do_action( 'woocommerce_checkout_payment',99 );但两个人都不打电话给付款部门!
,谁能帮我理解一下为什么不起作用?
注意:我知道我可以将woocommerce_checkout_payment注册到一个自定义函数并以这种方式调用它,但是我很困惑为什么直接方法不能工作,我更希望保持简单是可能的。
发布于 2022-06-20 18:51:51
在子主题中将这一行添加到functions.php中:
// Detaching `payment` from `woocommerce_checkout_order_review` hook
remove_action('woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
// Attaching `payment` to my `woocommerce_checkout_payment_hook`
add_action('woocommerce_checkout_payment_hook', 'woocommerce_checkout_payment', 10 ); 现在您可以使用自定义钩子来显示payment部分:
do_action( 'woocommerce_checkout_payment_hook' );谢谢@LoicTheAztec的解决方案。
https://stackoverflow.com/questions/65978939
复制相似问题