Intereting Posts
Подключить регистрационную форму к Apigee Как отображать пользовательский метабокс только на конкретных идентификаторах страниц BuddyPress – Как добавить выход в навигационное меню Сгенерировать расширенные настраиваемые поля в пользовательской странице меню администратора Опубликовать, чтобы наследовать фоновое изображение пользовательской категории от родительского Могу ли я создать (или обновить) пароль пользователя WP-CLI хэшем? Как получить мета-значение пользователя в wordpress Как обрабатывать файлы cookie из плагина WordPress на кешированной странице? Условно загружать JavaScript на основе дополнительных пользовательских полей в сообщении Использование фильтра attachment_fields_to_edit внутри класса плагина показать случайное изображение в цикле, если изображение не установлено Woocommerce, как предотвратить добавление переменной пакета, изменяющей способ доставки по умолчанию Как получить персонализированные данные WordPress в мета-панели продукта WooCommerce? Как передать переменные в аргумент функции, используя add_action получать зарегистрированные обменные вещества по типу сообщения или по почте

Добавить субтитры к названию продукта Woocommerce

Я использую WooCommerce на сайте, построенном с помощью Pagelines Framework. Мне нужно, чтобы подзаголовок / настраиваемое поле отображалось под именем продукта везде, где оно появляется на сайте. Как это, WooCommerce не предлагает этот вариант.

Я пробовал использовать настраиваемые поля, но WooCommerce тоже использует их и выводит кучу вещей, которые мне не нужны вместе с моими субтитрами. Если бы я назвал свое настраиваемое поле «bookauthor», будет ли этот код работать для отображения только настраиваемого поля, которое я хочу?

<?php echo get_post_meta($id, "bookauthor", true); ?> 

И если да, то как я могу сделать свою новую полевую информацию сразу после названия продукта на лицевой стороне?

Я нашел нужные мне перехваты в этом файле php (думаю, я не знаю php, вот почему я прошу вас):

  <?php /* * @hooked woocommerce_template_single_title - 5 * @hooked woocommerce_template_single_price - 10 * @hooked woocommerce_template_single_excerpt - 20 * @hooked woocommerce_template_single_add_to_cart - 30 * @hooked woocommerce_template_single_meta - 40 * @hooked woocommerce_template_single_sharing - 50 */ ?> 

Я знаю, как отфильтровать, но как добавить в это поле пользовательское поле?

Или есть совершенно другой способ добиться того, что мне нужно?

Отказаться от благодарности всем, кто может помочь.

Чтобы ответить на ваш первый вопрос, получив ваш post meta bookauthor», «этот способ будет эхо / отображать только это. Если вы определяете переменную $id в коде справа, или можете сделать это, как показано ниже.

Код должен ответить на ваш второй вопрос, как вставить вторую строку заголовка на страницу продукта с помощью woocommerce_single_product_summary . Просто добавьте дополнительную информацию:

  function wpse116660_wc_add_2nd_title() { ?> <div class="2nd-tile"> <?php echo get_post_meta(get_the_ID(), "bookauthor", true); ?> </div> <?php } add_action( 'woocommerce_single_product_summary', 'wpse116660_wc_add_2nd_title', 6 ); 

Чтобы иметь больше комфорта с вашей персонализированной почтой, вы можете сделать то, что предложили @ pl4g4 и @brasofilo, и добавить обмен на экран редактирования продукта, но вам не обязательно, конечно, вы знаете, как это сделать со стандартным стандартом WordPress поля метаболизм .


Вы можете добавить метаполе, как это, код основан на первом примере на странице add_meta_box WordPress codex.

 /** * Adds a box to the main column on the Post and Page edit screens. */ function wpse116660_wc_2nd_title_mb() { $screen = array( 'product' ); add_meta_box( 'wc_2nd_title_mb', __( '2nd title', 'your_textdomain' ), 'wc_2nd_title_inner_mb', $screen, 'advanced', 'high' ); } add_action( 'add_meta_boxes', 'wpse116660_wc_2nd_title_mb', 0 ); /** * Prints the box content. * * @param WP_Post $post The object for the current post/page. */ function wpse116660_wc_2nd_title_inner_mb( $post ) { // Add an nonce field so we can check for it later. wp_nonce_field( 'wc_2nd_title_inner_mb', 'wc_2nd_title_inner_mb_nonce' ); /* * Use get_post_meta() to retrieve an existing value * from the database and use the value for the form. */ $value = get_post_meta( $post->ID, 'bookauthor', true ); echo '<label for="bookauthor_field">'; _e( "Bookauthor", 'your_textdomain' ); echo '</label> '; echo '<input type="text" id="bookauthor_field" name="bookauthor_field" value="' . esc_attr( $value ) . '" size="50" />'; } /** * When the post is saved, saves our custom data. * * @param int $post_id The ID of the post being saved. */ function wpse116660_wc_2nd_title_save_postdata( $post_id ) { /* * We need to verify this came from the our screen and with proper authorization, * because save_post can be triggered at other times. */ // Check if our nonce is set. if ( ! isset( $_POST['wc_2nd_title_inner_mb_nonce'] ) ) return $post_id; $nonce = $_POST['wc_2nd_title_inner_mb_nonce']; // Verify that the nonce is valid. if ( ! wp_verify_nonce( $nonce, 'wc_2nd_title_inner_mb' ) ) return $post_id; // If this is an autosave, our form has not been submitted, so we don't want to do anything. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return $post_id; // Check the user's permissions. if ( 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_id ) ) return $post_id; } else { if ( ! current_user_can( 'edit_post', $post_id ) ) return $post_id; } /* OK, its safe for us to save the data now. */ // Sanitize user input. $mydata = sanitize_text_field( $_POST['bookauthor_field'] ); // Update the meta field in the database. update_post_meta( $post_id, 'bookauthor', $mydata ); } add_action( 'save_post', 'wpse116660_wc_2nd_title_save_postdata' ); 

Вы можете добавить дополнительный метаболизм к сообщению продукта. Этот мета-поле должен иметь и вводить форму, поэтому вы можете ввести подзаголовок, когда вы добавили метабокс, сохраните значение в post_meta, когда продукт будет сохранен, а затем на странице одного продукта из шаблона woocommerce используйте код

 <?php echo get_post_meta($id, "bookauthor", true); ?> 

чтобы получить его.

вы можете найти информацию о metaboloxess Here And Here Here