我无法在结帐时获取添加到购物车的选项值

时间:2019-04-23 08:02:13

标签: php wordpress woocommerce

我正在使用Modern Tribe的名为Event Calendar和Event Tickets +的插件,该插件与woo-commerce集成。

在预订活动时,要求用户输入与会者的详细信息。我想在表格的末尾添加选项,使用户可以在帖子中发送票证。将为他们提供收音机选项,包括邮费和包装费。

我已经将目标文件添加到了我的子主题中,并成功添加了代码以产生单选按钮选项。但是,我编写的将值添加到购物车的代码不起作用。

我应该补充一点,当用户选择一个事件时,他们将被带到购物车。然后要求他们提供与会者的详细信息,我可以选择收音机。然后他们将被带到结帐处,因此需要在此处添加费用。如果相关,我已将其添加到我的初始描述中。

有人可以帮忙吗?

function ashweb_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(
            'no_option' => 'No Option',
            'option_1' => 'Option 1 ($1.65)',
        ),
        'default' => $chosen
    );

    echo '<div id="checkout-radio">';
    echo '<h3>Add Postage and Packing!</h3>';
    woocommerce_form_field( 'radio_choice', $args, $chosen );
    echo '</div>';
}

ashweb_checkout_radio_choice();

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

function ashweb_checkout_radio_choice_fee( $cart ) {

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

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

    if ( "option_1" == $radio ) {
        $fee = 1.65;
    }

    $cart->add_fee( __('Option Fee', 'woocommerce'), $fee );
}

0 个答案:

没有答案