Настраиваемое поле проверки в столбце страницы заказа |WooCommerce - PullRequest
1 голос
/ 09 июля 2019

У меня есть несколько настраиваемых полей оформления заказа, которые я хотел бы показать в виде столбцов, я устал, как есть, но, кажется, работает только для стандартных полей оформления заказа, таких как страна, штат, имя и т. Д.

Воткод, который я использовал для создания настраиваемого поля оформления заказа:

    add_action( 'woocommerce_before_order_notes', '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 ) ? 'no_option' : $chosen;

    $args = array(
    'type' => 'radio',
    'class' => array( 'form-row-wide' ),
    'options' => array(
    'option_1' => 'Thursday all day (£12.50)',
    'option_2' => 'Thursday AM (£13.50)',
    'option_3' => 'Friday AM (£13.50)',
    ),
    'default' => $chosen
    );

    echo '<div id="checkout-radio">';
    echo '<h3>Please Select Delivery Day</h3>';
    echo '<p>"Our cut off point is 10am on Monday for orders to be received the same week. If you are placing your order later than this we will schedule your delivery for the following week."</p>';
    woocommerce_form_field( 'radio_choice', $args, $chosen );
    echo '</div>';

    }

    // Part 2 
    // Add Fee and Calculate Total
    // Based on session's "radio_chosen"

    #2 Calculate New 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' );
    $fee = 12.5;
    $deliveryDay = "Normal";
    if ( "option_1" == $radio ) {
    $fee = 12.5;
    $deliveryDay = "Thursday all day";
    } elseif ( "option_2" == $radio ) {
    $fee = 13.5;
    $deliveryDay = "Thursday AM";
    } elseif ( "option_3" == $radio ) {
    $fee = 13.5;
    $deliveryDay = "Friday AM";
    }

    $cart->add_fee( __('Shipping ('. $deliveryDay. ')', 'woocommerce'), $fee );

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...