Пользовательское поле Флажок Цена в woocommerce продукте, затем + Корзина Обновление или добавление - PullRequest
0 голосов
/ 24 сентября 2019

Пока все хорошо.Здесь все отлично работает → 1. Пользовательские поля отображаются правильно на странице редактирования / администрирования одного продукта, и они сохраняются правильно.2. Они правильно сохраняют.Они возвращаются правильно.

add_action('woocommerce_product_options_advanced','add_custom_field_product_dashboard');
function add_custom_field_product_dashboard(){
    global $post;
echo '<div class="product_custom_field">';

     // Checkbox Field
     woocommerce_wp_checkbox( array(
             'id'          => 'custom_services_fields',
             'description' =>  __('Select if you want add on services', 'xxx'),
             'label'       => __('Display custom add on services', 'xxx'),
             'desc_tip'    => 'true',
     ) );


     // Addon Service 1
     woocommerce_wp_text_input( array(
             'id'        => 'addon_service_1',
             'label'     => __('Service 1', 'woocommerce'),
             'description' =>  __('set custom minimum Lettering text field', 'woocommerce'),
             'desc_tip'  => 'true',
     ) );

    // Number Field
    woocommerce_wp_text_input(
        array(
            'id'                => '_number_field_1',
            'label'             => __( 'Service amount 1', 'woocommerce' ),
            'placeholder'       => '',
            'desc_tip'            => false,
            'description'       => __( "Please enter the service amount", 'woocommerce' ),
            'type'              => 'number',
            'desc_tip'  => 'true',
            'custom_attributes' => array(
                    'step'  => 'any',
                    'min'   => '0'
                )
        )
    );

         echo '</div>';
}


add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save');
 function woocommerce_product_custom_fields_save($post_id){
    // Checkbox Field
    $checkbox = isset( $_POST['xxx_custom_services_fields'] ) ? 'yes' : 'no';
    update_post_meta( $post_id, 'xxx_custom_services_fields', $checkbox );

    // Save Minimum Letters
    if ( isset( $_POST['addon_service_1'] ) )
        update_post_meta($post_id, 'addon_service_1', sanitize_text_field( $_POST['addon_service_1'] ) );

    // Save the services amount
    if ( isset( $_POST['_number_field_1'] ) )
        update_post_meta($post_id, '_number_field_1', sanitize_text_field( $_POST['_number_field_1'] ) );

    if ( isset( $_POST['addon_service_2'] ) )
        update_post_meta($post_id, 'addon_service_2', sanitize_text_field( $_POST['addon_service_2'] ) );

    // Save the services amount
    if ( isset( $_POST['_number_field_2'] ) )
        update_post_meta($post_id, '_number_field_2', sanitize_text_field( $_POST['_number_field_2'] ) );
}


add_action( 'woocommerce_before_add_to_cart_button', 'output_custom_text_field', 0 );
function output_custom_text_field() {
    global $post;

    // Get the checkbox value
    $custom_option = get_post_meta( $post->ID, 'custom_services_fields', true );

    // If is single product page and have the "custom text option" enabled we display the field
    if ( is_product() && ! empty($custom_option) ) {
      ?>
        <div class="serviceclass">
                        <input type="checkbox" id="option1"/>
                        <label for="option1"><?php global $post; echo get_post_meta($post->ID,'addon_service_1',true);?>
                    </label><span class="js_price bold">€<?php global $post; echo get_post_meta($post->ID,'_number_field_1',true);?></span>
                </div>


        <div class="serviceclass">
                        <input type="checkbox" id="option2"/>
                        <label for="option1"><?php global $post; echo get_post_meta($post->ID,'addon_service_1',true);?>
                    </label><span class="js_price bold">€<?php global $post; echo get_post_meta($post->ID,'_number_field_2',true);?></span>
                </div>


        <?php
    }
}

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

Like →

hhtps: //www.sampledomain.com/cart/ Эта функция должна использоваться, но каквот в чем вопрос →

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