Добавляем произвольные поля товаров различных типов (WooCommerce)
В предыдущем посте я показал, как можно добавить произвольное поле к товару в 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' ) ) ); |
Немає коментарів.