Add a prefix to WooCommerce product titles based on categories

ぐ巨炮叔叔 提交于 2021-01-28 13:58:22

问题


Is there any chance to have a prefix title for specific categories of woocommerce products?

For example:

If I add an RTX 2080Ti to GPU Category the title needs to be [GPU] RTX 2080Ti.


I have tried many codes around the internet but couldn't reach my target.

add_filter('wp_title', 'WPSE_20181106_prepend_title', 10, 3);
function WPSE_20181106_prepend_title($title, $sep, $seplocation) {
    // not a single post
    if (!is_singular('post')) {
        return $title;
    }

    // IDs of categories that should prepend the title
    $prepend_categories = [15, 35];

    // get all categories of post
    $categories = get_the_category();
    foreach ($categories as $category) {
        // found category
        if (in_array($category->term_id, $prepend_categories)) {
            // return new format, using __() so it is translateable
            return sprintf('%s %s: %s',
                __('Download', 'lang-slug'),
                $category->name,
                $title
            );
        }
    }
    // category not found, return default
    return $title;
}

Can someone guide to make this function work for woocommerce?


回答1:


You can use several Conditional Tags, depending on where you would like to change the product title.

With the code below the adjustment are done on the single product page

function change_title ( $title, $post_id ) {
    // Returns true on a single product page.
    if ( is_product() ) {
        // IDs of categories that should prepend the title
        $prepend_categories = array( 15, 16 );

        // get all categories via post id
        $categories = wp_get_post_terms( $post_id, 'product_cat' ); 

        foreach ( $categories as $category ) {          
            // Find category
            if ( in_array( $category->term_id, $prepend_categories ) ) {
                $title = '[' . $category->name . ']' . $title;
            }
        }
    }

    return $title;
} 
add_filter('the_title', 'change_title', 10, 2 );


来源:https://stackoverflow.com/questions/61749503/add-a-prefix-to-woocommerce-product-titles-based-on-categories

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!