Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add custom content to WooCommerce product description

I'm trying to inject some text in my description ending. Is it possible with filter?

Or do i need to do this via child theme? Been trying to find the hook for description but can only find one for short description. Example:

This is a description.

Just some sample text to fill the description out.

What i want is to inject "This is the last line in the description" So the hole description would look like this.

This is a description.

Just some sample text to fill the description out.

This is the last line in the description

The code i have for injecting text before short description is this:

add_filter( 'woocommerce_short_description', 'single_product_short_descriptions', 10, 1 );
function single_product_short_descriptions( $post_excerpt ){
    global $product;

    if ( is_single( $product->id ) )
        $post_excerpt = '<div class="product-message"><p>' . __( "Article only available in the store.", "woocommerce" ) . '</p></div>' . $post_excerpt;

    return $post_excerpt;
}
like image 478
Oscar vs Avatar asked Aug 08 '17 20:08

Oscar vs


People also ask

How do I add additional information to WooCommerce products?

The WooCommerce Additional Information tab in Product Pages is used to display product additional in WooCommerce. When you add information like weight, dimension, and other shipping details, they are automatically shown in the WooCommerce additional information tab on the product page.

How do I add a custom field to a product category?

Add a Custom Field to Each Single ProductGo to the single product page, scroll down to the custom fields box, and then add a new one manually. Call it something like “loopdesc” and add the text you want to show in the product category pages.


1 Answers

You can use this custom function hooked in the_content filter hook this way:

add_filter( 'the_content', 'customizing_woocommerce_description' );
function customizing_woocommerce_description( $content ) {

    // Only for single product pages (woocommerce)
    if ( is_product() ) {

        // The custom content
        $custom_content = '<p class="custom-content">' . __("This is the last line in the description", "woocommerce").'</p>';

        // Inserting the custom content at the end
        $content .= $custom_content;
    }
    return $content;
}

Code goes in functions.php file of your active child theme (or active theme). Tested and works.


Addition - Force product description when is empty (if you want this custom text to be displayed):

add_filter( 'woocommerce_product_tabs', 'force_description_product_tabs' );
function force_description_product_tabs( $tabs ) {

    $tabs['description'] = array(
        'title'    => __( 'Description', 'woocommerce' ),
        'priority' => 10,
        'callback' => 'woocommerce_product_description_tab',
    );

    return $tabs;
}

Code goes in function.php file of your active child theme (or active theme). Tested and works.

like image 193
LoicTheAztec Avatar answered Nov 02 '22 20:11

LoicTheAztec