Добавляем произвольные поля товаров различных типов (WooCommerce)

05.02.2017 | Написал

В предыдущем посте я показал, как можно добавить произвольное поле к товару в WooCommerce. В примере я добавил поле ввода произвольного текста в виде input’а. Но эти поля и способ ввода значения в консоли можно сделать разные — числовое, сheckbox, textarea, select и другие. Я покажу как делать основные поля.
1. Для числового поля в функции woo_add_custom_general_fields_save( $post_id ) нужно указать:

// Number Field
$woocommerce_number_field = $_POST['_number_field'];
if( !empty( $woocommerce_number_field ) )
update_post_meta( $post_id, '_number_field', esc_attr( $woocommerce_number_field ) );

И в функции woo_add_custom_general_fields():

// Number Field
woocommerce_wp_text_input( 
array( 
'id'                => '_number_field', 
'label'             => __( 'My Number Field', 'woocommerce' ), 
'placeholder'       => '', 
'description'       => __( 'Enter the custom value here.', 'woocommerce' ),
'type'              => 'number', 
'custom_attributes' => array(
'step' 	=> 'any',
'min'	=> '0'
) 
)
);

2. Для текстовой области в функции woo_add_custom_general_fields_save( $post_id ) нужно указать:

// Textarea
$woocommerce_textarea = $_POST['_textarea'];
if( !empty( $woocommerce_textarea ) )
update_post_meta( $post_id, '_textarea', esc_html( $woocommerce_textarea ) );

И в функции woo_add_custom_general_fields():

// Textarea
woocommerce_wp_textarea_input( 
array( 
'id'          => '_textarea', 
'label'       => __( 'My Textarea', 'woocommerce' ), 
'placeholder' => '', 
'description' => __( 'Enter the custom value here.', 'woocommerce' ) 
)
);

3. Для выпадающего списка в функции woo_add_custom_general_fields_save( $post_id ) нужно указать:

// Select
$woocommerce_select = $_POST['_select'];
if( !empty( $woocommerce_select ) )
update_post_meta( $post_id, '_select', esc_attr( $woocommerce_select ) );

И в функции woo_add_custom_general_fields():

// Select
woocommerce_wp_select( 
array( 
'id'      => '_select', 
'label'   => __( 'My Select Field', 'woocommerce' ), 
'options' => array(
'one'   => __( 'Option 1', 'woocommerce' ),
'two'   => __( 'Option 2', 'woocommerce' ),
'three' => __( 'Option 3', 'woocommerce' )
)
)
);

4. Для чекбоксов в функции woo_add_custom_general_fields_save( $post_id ) нужно указать:

// Checkbox
$woocommerce_checkbox = isset( $_POST['_checkbox'] ) ? 'yes' : 'no';
update_post_meta( $post_id, '_checkbox', $woocommerce_checkbox );

И в функции woo_add_custom_general_fields():

// Checkbox
woocommerce_wp_checkbox( 
array( 
'id'            => '_checkbox', 
'wrapper_class' => 'show_if_simple', 
'label'         => __('My Checkbox Field', 'woocommerce' ), 
'description'   => __( 'Check me!', 'woocommerce' ) 
)
);
Метки: ,
Комментарии читателей статьи "Добавляем произвольные поля товаров различных типов (WooCommerce)"

Нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.