首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Woocommerce单一产品页面和商店页面中将产品SKU添加到产品标题

在Woocommerce单一产品页面和商店页面中将产品SKU添加到产品标题
EN

Stack Overflow用户
提问于 2019-07-26 09:31:02
回答 2查看 1.8K关注 0票数 0

我想在实际的产品标题中添加产品名称。例如,如果产品名称为“服装设计”,产品名称为"2790“,则新产品标题应为”服装设计- 2790“。

我试过遵循密码。但此代码将产品标题替换为单个产品页面上的产品SKU。

代码语言:javascript
复制
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>';
}

但是我想要“产品标题+ Sku",&我想在单一的产品页面、商店页面、结账页面和购物车页面上显示它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-26 12:11:00

为什么不直接通过将SKU添加到当前标题而不是只更改视图来更改标题呢?

代码语言:javascript
复制
function append_sku_to_titles() {

 $all_ids = get_posts( array(
    'post_type' => 'product',
    'numberposts' => -1,
    'post_status' => 'publish',
    'fields' => 'ids'
));

foreach ( $all_ids as $id ) {
        $_product = wc_get_product( $id );
        $_sku = $_product->get_sku();
        $_title = $_product->get_title();

        $new_title = $_title . " " . $_sku;

        /*
        *   Tested.
        *   echo $_title + $_sku;
        *   echo("<script>console.log('Old: ".$_title. " - ". $_sku."');</script>");
        *   echo("<script>console.log('New: ".$new_title."');</script>");
        */

        $updated = array();
        $updated['ID'] = $id;
        $updated['post_title'] = $new_title;

        wp_update_post( $updated );
}}

//Call the function with footer (*Attention)
add_action( 'wp_footer', 'append_sku_to_titles' );

*注意:不要忘记在更改标题后删除这一行(add_action),因为每当页面加载时,它都会尝试更改它们。

票数 0
EN

Stack Overflow用户

发布于 2019-07-26 09:55:03

只需替换这一行:

代码语言:javascript
复制
echo '<h1 class="product_title entry-title">' . esc_html( $product->get_sku() ) . '</h1>';

通过以下方式:

代码语言:javascript
复制
echo '<h1 class="product_title entry-title">' . $product->get_title() . ' - ' . esc_html( $product->get_sku() ) . '</h1>';

你受够了!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57217101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档