Intereting Posts
Каков наилучший способ / практика получения расширения загруженного файла в PHP Как читать и писать в ini-файл с помощью PHP Реализация Shunting Yard в PHP необходима, интерпретирует и анализирует строку, выполняет математическое сравнение и возвращает логический результат Лучший способ совместного использования пользовательского кода PHP среди проектов Захват текста между квадратными скобками после подстроки в PHP Почтовые заголовки PHP php preg_replace для свойства внутри html-тегов Php, я не могу получить доступ к унаследованным частным переменным даже не с отражением значение по умолчанию для раскрывающегося списка на веб-странице Соответствие регулярных выражений и вложенные элементы Правильно укажите заголовок php на всех страницах Как создать динамическую матрицу в php? 403 Доступ запрещен вложение электронной почты php JSON – косые черты не ускользают

Сохраните пустое значение из пользовательского текстового поля в WooCommerce

Я работаю над сайтом электронной коммерции WordPress, где WooCommerce является выбранной торговой платформой.

Я создал настраиваемое поле в панели инструментов продукта WooCommerce, вставив следующий код в файл functions.php :

 function product_custom_fields_add(){ echo '<div class="product_custom_field">'; // Minimum Required Custom Letters woocommerce_wp_text_input( array( 'id' => '_minimum_engrave_text_option', 'name' => '_minimum_engrave_text_option', 'desc' => __('set custom minimum Lettering text field', 'woocommerce'), 'label' => __('Minimum Letters', 'woocommerce'), 'desc_tip' => 'true' ) ); echo '</div>'; } add_action('woocommerce_product_options_advanced', 'product_custom_fields_add'); 

Чтобы сохранить значения, я ввел следующий код в файл functions.php :

 // Save Minimum Required Custom Letters function woocommerce_product_custom_fields_save1($post_id){ if ( ! empty( $_POST['_minimum_engrave_text_option'] ) ) update_post_meta($post_id, '_minimum_engrave_text_option', esc_attr( $_POST['_minimum_engrave_text_option'] )); } add_action( 'woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save1' ); 

Вышеприведенный код работает, когда значение вводится в пользовательское поле. Моя проблема в том, что я не могу успешно сохранить пустое значение. Когда я сохраняю продукт, пользовательское поле либо автоматически заполняет поле «1», либо сохраняет ранее введенный номер.

Я попытался применить ответ по аналогичному вопросу , но не мог процитировать его.

Кто-нибудь знает, где я ошибаюсь?

Solutions Collecting From Web of "Сохраните пустое значение из пользовательского текстового поля в WooCommerce"

Попробуйте заменить empty() на isset() как условие в инструкции if вашей функции:

 // Save Minimum Required Custom Letters function woocommerce_product_custom_fields_save1($post_id){ if ( isset( $_POST['_minimum_engrave_text_option'] ) ) update_post_meta($post_id, '_minimum_engrave_text_option', esc_attr( $_POST['_minimum_engrave_text_option'] )); } add_action( 'woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save1' ); 

Теперь это будет работать