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

Din*_*no9 4 php wordpress paypal checkout woocommerce

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

remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 ); 
add_action( 'woocommerce_after_order_notes', 'woocommerce_checkout_payment', 20 );
Run Code Online (Sandbox Code Playgroud)

但“条款和条件”文本和“下订单”按钮也随之移动。我需要有付款选项,然后是订单审核,最后是“条款和条件”文本和“下订单”按钮。

我怎样才能做到这一点?

Kha*_*war 5

原装 WC 挂钩

// includes/wc-template-hooks.php:214
add_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
Run Code Online (Sandbox Code Playgroud)

你的钩子

这将在您的主题或插件中。

// 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 );
Run Code Online (Sandbox Code Playgroud)

你的钩子应该在 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' );
Run Code Online (Sandbox Code Playgroud)


小智 -2

模板覆盖是必要的(不能仅编辑functions.php)。

实现您想要的目标的一种可能方法是:

  1. 将 payment.php 从 woocommerce 插件文件夹复制到 your_child _theme/woocommerce/checkout/ 文件夹。
  2. 打开新创建的 payment.php 文件,并在 行之前添加一个自定义挂钩<div class="form-row place-order">。例如:

    <?php do_action( 'woocommerce_review_order_and_proceed' ); ?>

  3. 在子主题的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 );