Почему на странице товара не отображается кастомное поле от woocommerce?

Как я могу добавить поле WYSIWYG на странице редактирования товара в WooCommerce через functions.php, так чтобы оно сохраняло введенные данные? При использовании кода, описанного ниже, ничего не происходит. Также моя страница редактирования товара выглядит необычно. Это нормально? 

```php
function add_info_wysiwyg_field() {
   if ( function_exists( 'wp_editor' ) && isset( $_GET['post'] ) && get_post_type( $_GET['post'] ) === 'product' ) {
        $product_id = $_GET['post'];
        $product = wc_get_product( $product_id );
        
        $info = $product->get_meta( 'information' );
        
        wp_editor( $info, 'product_information', array(
            'textarea_name' => 'product_information',
            'editor_height' => 200,
            'media_buttons' => false
        ) );
        
        echo '<input type="hidden" name="information" value="product_information">';
    }
}
add_action( 'woocommerce_product_options_general_product_data', 'add_info_wysiwyg_field' );

function save_info_wysiwyg_field( $product_id ) {
    if ( isset( $_POST['product_information'] ) ) {
        update_post_meta( $product_id, 'information', wp_kses_post( $_POST['product_information'] ) );
    }
}
add_action( 'woocommerce_process_product_meta', 'save_info_wysiwyg_field' );
```
Изображение к вопросу
  • 24 декабря 2023 г. 16:37
Ответы на вопрос 1
Если на странице товара не отображается кастомное поле от WooCommerce, может быть несколько причин.

1. Убедитесь, что вы правильно указали имя кастомного поля в коде. В вашем случае, проверьте, что имя поля в функции `wp_editor` ("product_information") соответствует имени поля, которое вы ожидаете увидеть на странице товара.

2. Убедитесь, что вы правильно добавили кастомное поле к метабоксу товара. В вашем коде, вы используете хук `woocommerce_product_options_general_product_data`, который является частью стандартного метабокса "Общие данные о товаре". Если вы хотите добавить поле в другой метабокс, проверьте правильность указания хука.

3. Проверьте, что у вас включен WooCommerce на вашем сайте. Если WooCommerce не активирован, поле товара, которое вы пытаетесь добавить, не будет показываться.

Что касается добавления поля WYSIWYG на странице редактирования товара в WooCommerce через functions.php, код, который вы предоставили выглядит правильным. Однако, важно учесть следующие моменты:

1. Убедитесь, что вы правильно указали имя кастомного поля в функции `wp_editor` и `update_post_meta`.
2. Убедитесь, что вы используете правильные хуки для добавления и сохранения поля в WooCommerce. В вашем коде, вы используете хуки `woocommerce_product_options_general_product_data` и `woocommerce_process_product_meta`, которые относятся к стандартному метабоксу "Общие данные о товаре".
3. Проверьте, что вы правильно сохраняете значение поля в базу данных. В вашем коде, значение поля сохраняется в кастомное поле с именем "information" с использованием функции `update_post_meta`.

Относительно вашего уточнения о "странице редактирования товара, которая выглядит необычно", без дополнительной информации сложно сказать, что именно вы имеете в виду. Возможно, у вас есть проблемы со стилями или конфликт с другими плагинами или темой. Рекомендуется проверить логи ошибок и рассмотреть возможность временного отключения других плагинов или изменения темы, чтобы выявить источник проблемы.
Похожие вопросы