2015-02-25 3 views
0

Я использую woocommerce для своего сайта. Я хочу добавить дополнительные поля на странице продукта, следующие в SKU, Обычная цена, Цена продажи. Дополнительные поля содержат значения по умолчанию, такие как 2% или 5%. когда пользователь вводит цену продукта она должна быть рассчитана со значениями по умолчанию & результат должен отображаться в другом поле ..Изменения в woocommerce Добавить страницу продукта?

Например:

  1. SKU: 001
  2. Обычная цена (Rs): 100
  3. Добавлено Текст Поле1: 5% (5% от 100 = 5)
  4. Добавлено Текст Field2: 2% (2% от 100 = 2)

  5. ответа Поле: 107 (100 + 5 + 2)

Примечание: Поле ответа должно быть автоматически вычисляется из значений, присутствующих в обычной цене/продаже Цена + добавлен текст поле1 + добавлен текст поле2.

Как это сделать ???

Я создал поля, используя следующую функцию ...

// Display Fields 
 
add_action('woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields'); 
 

 
// Save Fields 
 
add_action('woocommerce_process_product_meta', 'woo_add_custom_general_fields_save'); 
 

 
function woo_add_custom_general_fields() { 
 
    
 
    global $woocommerce, $post; 
 
    
 
    echo '<div class="options_group">'; 
 
    
 
    // Custom fields will be created here... 
 
    // Text Field 
 
woocommerce_wp_text_input( 
 
\t array( 
 
\t \t 'id'   => '_text_field', 
 
\t \t 'label'  => __('Our Commision', 'woocommerce'), 
 
\t \t 'placeholder' => '5%', 
 
\t \t 'desc_tip' => 'true', 
 
\t \t 'description' => __('Commision will be added to Product Actual Price', 'woocommerce') 
 
\t) 
 
); 
 
// Text Field 
 
woocommerce_wp_text_input( 
 
\t array( 
 
\t \t 'id'   => '_text_field', 
 
\t \t 'label'  => __('Payment Gateway Charges', 'woocommerce'), 
 
\t \t 'placeholder' => '2%', 
 
\t \t 'desc_tip' => 'true', 
 
\t \t 'description' => __('Payment Gateway Charges will be added to Product Actual Price', 'woocommerce') 
 
\t) 
 
); 
 
    echo 'Selling Price = Your Price + Our Commision + Payment Gateway Charges.'; 
 
    echo '</div>'; 
 
\t 
 
}

ответ

0

Добавить ниже код для вашей темы functions.php:

add_action('woocommerce_product_options_general_product_data', 'so28712303_rohil_add_custom_general_fields'); 
// Save Fields 
add_action('woocommerce_process_product_meta', 'so28712303_rohil_add_custom_general_fields_save'); 

function so28712303_rohil_add_custom_general_fields() { 

    global $woocommerce, $post; 

    echo '<div class="options_group">'; 

     woocommerce_wp_text_input( 
      array( 
       'id' => 'field_1', 
       'label' => __('<strong>Extra Field 1</strong>', 'woocommerce'), 
       'placeholder' => '', 
       'description' => __('Please enter a number', 'woocommerce'), 
       'type' => 'number', 
       'custom_attributes' => array(
        'step' => 'any', 
        'min' => '0' 
       ) 
      ) 
     ); 

    echo '</div>'; 

    echo '<div class="options_group">'; 

     woocommerce_wp_text_input( 
      array( 
       'id' => 'field_2', 
       'label' => __('<strong>Extra Field 2</strong>', 'woocommerce'), 
       'placeholder' => '', 
       'description' => __('Please enter a number', 'woocommerce'), 
       'type' => 'number', 
       'custom_attributes' => array(
        'step' => 'any', 
        'min' => '0' 
       ) 
      ) 
     ); 

    echo '</div>'; 

    echo '<div class="options_group">'; 

     woocommerce_wp_text_input( 
      array( 
       'id' => 'result_field', 
       'label' => __('<strong style="color:#239804">Result</strong>', 'woocommerce'), 
       'placeholder' => '', 
       'description' => __('Percentage of Price', 'woocommerce'), 
       'type' => 'number', 
       'readonly' => 'readonly', 
       'custom_attributes' => array(
        'step' => 'any', 
        'min' => '0', 
        'readonly' => 'readonly' 
       ) 
      ) 
     ); 

    echo '</div>'; 

}//so28712303_rohil_add_custom_general_fields 

function so28712303_rohil_add_custom_general_fields_save($post_id){ 
    $woocommerce_field_1 = $_POST['field_1']; //Value of Extra field 1 
    $woocommerce_field_2 = $_POST['field_2']; //Value of Extra field 2 
    $woocommerce_result_field = $_POST['result_field']; //No use of this..you can delete 
    $regular_price = $_POST['_regular_price']; //Value of regular price 

    if(!empty($woocommerce_field_1) || !empty($woocommerce_field_2)): 
     update_post_meta($post_id, 'field_1', esc_attr($woocommerce_field_1)); //Save value of Extra Field 1 
     update_post_meta($post_id, 'field_2', esc_attr($woocommerce_field_2)); //Save value of Extra Field 2 
    endif; 
    $result_field = ($woocommerce_field_1 * $regular_price)/100 ; //Calculation goes here ... 
     //if(empty($woocommerce_result_field)) 
    update_post_meta($post_id, 'result_field', esc_attr($result_field)); //Save result here ... 
} 

Позвольте мне знать, если у вас есть какие-либо сомнения ,

Снимок экрана:

enter image description here

+0

Дополнительные поля присутствуют в странице добавления .. Но результат не отображается, когда пользователь войдем продукт обычная цена – NNKK

+0

Смотрите мой отредактированный ... –

+0

Посмотрите на скриншот : http://ge.tt/10zLv7B2/v/0 – NNKK

Смежные вопросы