woocommerce очистить 1 значение после завершения заказа - PullRequest
0 голосов
/ 23 февраля 2019

, если кто-нибудь может мне помочь в этом.Я использую приведенный ниже фрагмент в functions.php, чтобы создать подсказку на кассе в качестве дополнения.но выбранный совет / значение не ясно после завершения заказа.настройка по умолчанию будет $ 0 при первом посещении сайта.также даже с $ 0 он все еще показывает в промежуточном разделе с наконечником $ 0.00 2 вещи, которые я хочу достичь.1. Очистите ввод наконечника / значения, чтобы очистить после завершения заказа.2. скрыть «чаевые $ 0» в корзине, если чаевые не добавлены.Спасибо за помощь.вот код в functions.php

// Part 3 
// Refresh Checkout if Radio Changes
// Uses jQuery
 
add_action( 'wp_footer', 'bbloomer_checkout_radio_choice_refresh' );
 
function bbloomer_checkout_radio_choice_refresh() {
if ( ! is_checkout() ) return;
    ?>
    <script type="text/javascript">
    jQuery( function($){
        $('form.checkout').on('change', 'input[name=radio_choice]', function(e){
            e.preventDefault();
            var p = $(this).val();
            $.ajax({
                type: 'POST',
                url: wc_checkout_params.ajax_url,
                data: {
                    'action': 'woo_get_ajax_data',
                    'radio': p,
                },
                success: function (result) {
                    $('body').trigger('update_checkout');
                }
            });
        });
    });
    </script>
    <?php
}
 
// Part 4 
// Add Radio Choice to Session
// Uses Ajax
 
add_action( 'wp_ajax_woo_get_ajax_data', 'bbloomer_checkout_radio_choice_set_session' );
add_action( 'wp_ajax_nopriv_woo_get_ajax_data', 'bbloomer_checkout_radio_choice_set_session' );
 
function bbloomer_checkout_radio_choice_set_session() {
    if ( isset($_POST['radio']) ){
        $radio = sanitize_key( $_POST['radio'] );
        WC()->session->set('radio_chosen', $radio );
        echo json_encode( $radio );
    }
    die();
}
<?php
   
 
// Part 1 
// Display Radio Buttons
// Uses woocommerce_form_field()
 
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 ) ? 'show_option_none' : $chosen;
         
    $args = array(
    'type' => 'radio',
    'class' => array( 'form-row-wide' ),
    'options' => array(

        'option_1' => '$2',
        'option_2' => '$3',
        'option_3' => '$4',
        'option_4' => '$5',
        'option_5' => '$6',
        'option_6' => '$7',
        'option_7' => '$8',
        'option_8' => '$9',
        'option_9' => '$10',
        'option_10' => '$11',
        'option_11' => '$12',
        'no_option' => 'Remove',
  
    ),
    'default' => $chosen
    );
     
    echo '<div class="radiotip" id="checkout-radio">';
    echo '<h3>Add tip here</h3>';
    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' );
     
  if ( "option_1" == $radio ) {
    $fee = 2;
  } elseif ( "option_2" == $radio ) {
    $fee = 3;
  }
  elseif ( "option_3" == $radio ) {
    $fee = 4;
  }
  elseif ( "option_4" == $radio ) {
    $fee = 5;
  }
  elseif ( "option_5" == $radio ) {
    $fee = 6;
  }
  elseif ( "option_6" == $radio ) {
    $fee = 7;
  }
  elseif ( "option_7" == $radio ) {
    $fee = 8;
  }
  elseif ( "option_8" == $radio ) {
    $fee = 9;
  }
  elseif ( "option_9" == $radio ) {
    $fee = 10;
  }
  elseif ( "option_10" == $radio ) {
    $fee = 11;
  }
    elseif ( "option_11" == $radio ) {
    $fee = 12;
  }

  
  $cart->add_fee( __('Tip', 'woocommerce'), $fee );
  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...