wordpress 在Woocommerce结帐页面中移动付款方式

wrrgggsh  于 2023-08-03  发布在  WordPress
关注(0)|答案(3)|浏览(154)

我必须将Woocommerce网站的结账页面中的付款方式移动到订单评论上方,但我不知道如何操作。问题是,我尝试使用以下代码:

remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 ); 
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );

字符串
但“条款和条件”文本和“下订单”按钮也随之移动。我需要有付款选项,然后订单审查,并在年底的“条款和条件”文本和“下订单”按钮。
我怎么能做到呢?

velaa5lx

velaa5lx1#

原装厕所挂钩

// includes/wc-template-hooks.php:214
add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );

字符串

你的钩子

这将在您的主题或插件。

// make sure the priority value is correct, running after the default priority.
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );


你的钩子应该在WC加载后运行;这样你就可以把它取出来了

function theme_wc_setup() {
  remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
  add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );
}
add_action( 'after_setup_theme', 'theme_wc_setup' );


编辑:谢谢大家,不知道这仍然是积极的搜索。投票支持其他开发者!

mu0hgdu0

mu0hgdu02#

我正在寻找一种方法来做类似的事情-将T & C移动到支付方式之上。但是吴的结账条款和条件有点奇怪。似乎有一个用于隐私文本的钩子和一个用于术语文本的钩子,但没有用于实际tickbox的钩子,所以你可以对前两个使用钩子,但不是实际的tickbox,这很烦人。似乎整个“woocommerce-terms-and-conditions-wrapper”div -包含所有三个,应该是可挂钩的。
无论如何,我发现使用jQuery移动我的div更容易-因为我无法找到一种简单的方法来移动术语div -相反,我移动了Payment Div -(这是你要求的,所以我在这里分享它是有用的)。
将此代码段添加到函数文件。将insertBefore修改为您想要移动的div。在我的例子中,它是在条款和条件之后。测试和工作。

function stacko_woomove_paymentmethods() { 
    if (is_checkout() ) { ?>
        <script>
            jQuery(function($) {
              $(document).ready(function(){
$('.wc_payment_methods.payment_methods.methods').detach().insertBefore('button#place_order');
$('.wc_payment_methods.payment_methods.methods').before('<h3 class="note">Select Payment</h3>');
    });
  });
</script>
<? }
}
add_action( 'woocommerce_checkout_init', 'stacko_woomove_paymentmethods');

字符串

bvhaajcl

bvhaajcl3#

模板覆盖是必要的(不可能编辑functions.php只)。
实现你想要的东西的一个可能的方法是:
1.将payment.php从woocommerce插件文件夹复制到your_child _theme/woocommerce/checkout/文件夹。
1.打开新创建的payment.php文件,并在<div class="form-row place-order">行之前添加一个自定义钩子。举例来说:
<?php do_action( 'woocommerce_review_order_and_proceed' ); ?>
1.在你的子主题的functions.php中,添加下面的代码,将woocommerce_order_review操作从它原来的位置解钩,并将它钩到新创建的钩子上:
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review', 10 );
add_action( 'woocommerce_review_order_and_proceed', 'woocommerce_order_review', 20 );

相关问题