在WooCommerce结帐中在订单总数之前添加交货单选按钮

幸运的

我正在写一个WordPress插件,在其中我需要在WooCommerce订单审查部分的订单总数之前添加两个单选按钮。我想出了如何在订单查看部分添加自定义单选按钮,但是我无法理解如何在订单总数之前移动交货选项

请检查屏幕截图以了解我到底要实现什么。

在此处输入图片说明

这是我的代码:

// Part 1 
// Display Radio Buttons

add_action( 'woocommerce_review_order_before_payment', 'bbloomer_checkout_radio_choice' );

function bbloomer_checkout_radio_choice() {

   $chosen = WC()->session->get( 'radio_chosen' );
   $chosen = empty( $chosen ) ? WC()->checkout->get_value( 'radio_choice' ) : $chosen;
   $chosen = empty( $chosen ) ? '0' : $chosen;

   $args = array(
   'type' => 'radio',
   'class' => array( 'form-row-wide', 'update_totals_on_change' ),
   'options' => array(

      '2.95' => '60 MINUTES: €2.95',
      '0' => '24 - 48 HOURS',
   ),
   'default' => $chosen
   );

   echo '<div id="checkout-radio">';
   echo '<h3>Delivery Options</h3>';
   woocommerce_form_field( 'radio_choice', $args, $chosen );
   echo '</div>';

}

// Part 2 
// Add Fee and Calculate Total

add_action( 'woocommerce_cart_calculate_fees', 'bbloomer_checkout_radio_choice_fee', 20, 1 );

function bbloomer_checkout_radio_choice_fee( $cart ) {

   if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;

   $radio = WC()->session->get( 'radio_chosen' );



   if ( $radio ) {
      $cart->add_fee( 'Delivery Fee', $radio );
   }

}

// Part 3 
// Add Radio Choice to Session

add_action( 'woocommerce_checkout_update_order_review', 'bbloomer_checkout_radio_choice_set_session' );

function bbloomer_checkout_radio_choice_set_session( $posted_data ) {
    parse_str( $posted_data, $output );
    if ( isset( $output['radio_choice'] ) ){
        WC()->session->set( 'radio_chosen', $output['radio_choice'] );
    }
}

这个你能帮我吗。

提前致谢。

LoicTheAztec

要在总订单前移动单选按钮,您将需要使用另一个挂钩。但是您不能在费用总额行上有该传递单选按钮…

我简化并重新审视了代码:

add_action( 'woocommerce_review_order_before_order_total', 'checkout_delivery_radio_buttons' );
function checkout_delivery_radio_buttons() {
    echo '<tr class="delivery-radio">
            <th>'.__("Delivery Options").'</th><td>';

    $chosen = WC()->session->get( 'delivery' );
    $chosen = empty( $chosen ) ? WC()->checkout->get_value( 'delivery' ) : $chosen;
    $chosen = empty( $chosen ) ? '0' : $chosen;

    woocommerce_form_field( 'delivery',  array(
        'type'      => 'radio',
        'class'     => array( 'form-row-wide', 'update_totals_on_change' ),
        'options'   => array(
            '2.95'  => '60 MINUTES: €2.95',
            '0'     => '24 - 48 HOURS',
        ),
    ), $chosen );
    
    echo '</td></tr>';
}

add_action( 'woocommerce_cart_calculate_fees', 'checkout_delivery_fee', 20, 1 );
function checkout_delivery_fee( $cart ) {
    if ( $radio = WC()->session->get( 'delivery' ) ) {
        $cart->add_fee( 'Delivery Fee', $radio );
    }
}

add_action( 'woocommerce_checkout_update_order_review', 'checkout_delivery_choice_to_session' );

function checkout_delivery_choice_to_session( $posted_data ) {
    parse_str( $posted_data, $output );
    if ( isset( $output['delivery'] ) ){
        WC()->session->set( 'delivery', $output['delivery'] );
    }
}

代码进入您的活动子主题(或活动主题)的functions.php文件中。经过测试和工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Magento交货单PDF

来自分类Dev

在结帐时根据WooCommerce中的用户角色和购物车总数更改订单按钮文本

来自分类Dev

在WooCommerce结帐处的“下订单”按钮下添加文本

来自分类Dev

Woocommerce-结帐页面上的订单审核总数未刷新

来自分类Dev

在WooCommerce订单详细信息中保存自定义结帐交货时间字段值

来自分类Dev

在WooCommerce中,在结帐时使用付款选项之前,先从订单查看表中移动送货选项

来自分类Dev

在WooCommerce结帐中显示基于购物车总和的信息,在订单检查表之前

来自分类Dev

在Woocommerce订单和电子邮件中的订单总数之后添加自定义文本

来自分类Dev

WooCommerce:在结帐,我的帐户,管理订单和WordPress用户中添加生日帐单字段

来自分类Dev

在WooCommerce中将自定义结帐字段值添加到客户订单注释中

来自分类Dev

WooCommerce:在结帐,我的帐户,管理订单和WordPress用户中添加生日帐单字段

来自分类Dev

基于结帐单选按钮的WooCommerce动态计划

来自分类Dev

WooCommerce获得订单总数

来自分类Dev

我只想为访客用户在woocommerce模板订单详细信息中添加取消订单按钮?

来自分类Dev

在付款过程之前在结帐页面中获取订单 ID

来自分类Dev

根据WooCommerce中的自定义结帐单选按钮和文本字段设置动态费用

来自分类Dev

在 WooCommerce 中更新订单元之前挂钩?

来自分类Dev

如果订单总数为0,则将Woocommerce重命名为“下订单”按钮

来自分类Dev

如果订单总数为0,则将Woocommerce重命名为“下订单”按钮

来自分类Dev

根据WooCommerce中的订单总数更改PayPal地址

来自分类Dev

在WooCommerce结帐审查订单表上添加标题并显示项目成本和总项目成本

来自分类Dev

如何在WooCommerce中重定向到自定义添加到购物车按钮上的结帐

来自分类Dev

WooCommerce API:创建订单和结帐

来自分类Dev

在 WooCommerce 中更改特定付款方式的结帐提交按钮文本

来自分类Dev

在woocommerce结帐页面自定义字段中添加日期

来自分类Dev

添加复选框以在 Woocommerce 中显示/隐藏结帐字段

来自分类Dev

向ListView中的单选按钮添加命令

来自分类Dev

Woocommerce在结帐页面下订单后替换购物车中的产品

来自分类Dev

在WooCommerce结帐中制作特定产品类别所需的订单注释

Related 相关文章

  1. 1

    Magento交货单PDF

  2. 2

    在结帐时根据WooCommerce中的用户角色和购物车总数更改订单按钮文本

  3. 3

    在WooCommerce结帐处的“下订单”按钮下添加文本

  4. 4

    Woocommerce-结帐页面上的订单审核总数未刷新

  5. 5

    在WooCommerce订单详细信息中保存自定义结帐交货时间字段值

  6. 6

    在WooCommerce中,在结帐时使用付款选项之前,先从订单查看表中移动送货选项

  7. 7

    在WooCommerce结帐中显示基于购物车总和的信息,在订单检查表之前

  8. 8

    在Woocommerce订单和电子邮件中的订单总数之后添加自定义文本

  9. 9

    WooCommerce:在结帐,我的帐户,管理订单和WordPress用户中添加生日帐单字段

  10. 10

    在WooCommerce中将自定义结帐字段值添加到客户订单注释中

  11. 11

    WooCommerce:在结帐,我的帐户,管理订单和WordPress用户中添加生日帐单字段

  12. 12

    基于结帐单选按钮的WooCommerce动态计划

  13. 13

    WooCommerce获得订单总数

  14. 14

    我只想为访客用户在woocommerce模板订单详细信息中添加取消订单按钮?

  15. 15

    在付款过程之前在结帐页面中获取订单 ID

  16. 16

    根据WooCommerce中的自定义结帐单选按钮和文本字段设置动态费用

  17. 17

    在 WooCommerce 中更新订单元之前挂钩?

  18. 18

    如果订单总数为0,则将Woocommerce重命名为“下订单”按钮

  19. 19

    如果订单总数为0,则将Woocommerce重命名为“下订单”按钮

  20. 20

    根据WooCommerce中的订单总数更改PayPal地址

  21. 21

    在WooCommerce结帐审查订单表上添加标题并显示项目成本和总项目成本

  22. 22

    如何在WooCommerce中重定向到自定义添加到购物车按钮上的结帐

  23. 23

    WooCommerce API:创建订单和结帐

  24. 24

    在 WooCommerce 中更改特定付款方式的结帐提交按钮文本

  25. 25

    在woocommerce结帐页面自定义字段中添加日期

  26. 26

    添加复选框以在 Woocommerce 中显示/隐藏结帐字段

  27. 27

    向ListView中的单选按钮添加命令

  28. 28

    Woocommerce在结帐页面下订单后替换购物车中的产品

  29. 29

    在WooCommerce结帐中制作特定产品类别所需的订单注释

热门标签

归档