WooCommerce | Добавьте подзаголовок продукта под заголовком продукта на странице архива - PullRequest
0 голосов
/ 21 марта 2019

На странице архивов WooCommerce я хочу добавить подзаголовок под заголовком каждого продукта.

См. Это изображение для справки. Красные поля указывают размещение подзаголовка.

Я пытался подписаться на этого парня, Добавить значение настраиваемого поля под заголовком продукта на страницах архивов WooCommerce , но текстовое поле пользовательского продукта недоступно для меня.

Моя тема Wordpress, OceanWP, имеет поле подзаголовка .

Я попытался изменить код из вышеупомянутого связанного поста, и придумал это, но это не работает:

add_action( 'woocommerce_after_shop_loop_item_title', 'subheading_display_below_title', 2 );
function subheading_display_below_title(){
    global $product;

    // Get the custom field value
    $subheading = get_post_meta( $product->get_id(), '_subheading', true );

    // Display
    if( ! empty($subheading) ){
        echo '<p class="subheading">'.$subheading.'</p>';
    }
}

Как добавить подзаголовок моего продукта OceanWP под заголовком моего продукта на странице архива продукта?

Спасибо.

1 Ответ

0 голосов
/ 21 марта 2019

Чтобы ваш код работал, сначала нужно добавить настраиваемое поле подзаголовка для продуктов.Для этого вы можете сделать следующее:

//Register the product custom field
add_action( 'woocommerce_product_options_general_product_data', 'my_woocommerce_product_subheading' );

function my_woocommerce_product_subheading() {
    $args = array(
        'label' => 'Subheading', // Text in Label
        'placeholder' => 'My Subheading',
        'id' => 'product_subheading', // required
        'name' => 'product_subheading',
        'desc_tip' => 'The product subheading',
    );
    woocommerce_wp_text_input( $args );
}

//Save the custom field as product custom post meta
add_action( 'woocommerce_process_product_meta', 'my_woocommerce_save_product_subheading' );

function my_woocommerce_save_product_subheading( $post_id ) {
    $product = wc_get_product( $post_id );
    $title = isset( $_POST['product_subheading'] ) ? $_POST['product_subheading'] : '';
    $product->update_meta_data( 'product_subheading', sanitize_text_field( $title ) );
    $product->save();
}

//Display the custom field on product page loop below the title
add_action( 'woocommerce_after_shop_loop_item_title', 'subheading_display_below_title', 2 );
function subheading_display_below_title(){
    global $product;

    // Get the custom field value
    $subheading = get_post_meta( $product->get_id(), 'product_subheading', true );

    // Display
    if( ! empty($subheading) ){
        echo '<p class="subheading">'.$subheading.'</p>';
    }
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...