Замените название продукта на SKU на странице одного продукта Woocommerce. - PullRequest
2 голосов
/ 24 апреля 2019

Я использую Woocommerce и на страницах Продукта я хотел бы отображать SKU вместо названия продукта.

Я пробовал этот код:

add_action( 'woocommerce_single_product_summary', 'custom_before_title' );
function custom_before_title() {

    global $product;

    if ( $product->get_sku() ) {
        echo $product->get_sku();
    }

}

, но SKUотображается сразу после цены и это не то, что я хочу.Хотелось бы хотя бы, чтобы артикул отображался сразу после названия товара.Как я могу это сделать?

Любая помощь приветствуется.

1 Ответ

1 голос
/ 24 апреля 2019

Следующий код заменит название продукта на SKU продукта на отдельных страницах продукта:

add_action( 'woocommerce_single_product_summary', 'replace_product_title_by_product_sku', 4 );
function replace_product_title_by_product_sku() {
    global $product;

    if ( $product->get_sku() ) {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 );
        add_action( 'woocommerce_single_product_summary', 'display_product_sku_as_title', 5 );
    }
}

function display_product_sku_as_title() {
    global $product;

    echo '<h1 class="product_title entry-title">' . esc_html( $product->get_sku() ) . '</h1>';
}

Код содержится в файле function.php вашей активной дочерней темы (или активной темы).Протестировано и работает.


Для отображения артикула продукта под заголовком вы будете использовать:

add_action( 'woocommerce_single_product_summary', 'display_product_sku_below_title', 6 );
function display_product_sku_below_title() {
    global $product;

    if ( $sku = $product->get_sku() ) {
        echo '<p class="product_sku">' . esc_html( $sku ) . '</p>';
    }
}

Код помещается в файл function.php вашего активногодетская тема (или активная тема).Проверено и работает.

...