Add Text under Single Product Short Description in Woocommerce

后端 未结 2 912
甜味超标
甜味超标 2020-12-20 02:41

I want to add some Global Text immediately under the Product Short Description in Woo Commerce, before the product options.

I can change the file directly, but of co

2条回答
  •  轮回少年
    2020-12-20 02:59

    Update 2: There is 3 different ways, using hooks:

    1) Adding your custom text at the end of the short description content, (not for variable products):

    add_filter( 'woocommerce_short_description', 'add_text_after_excerpt_single_product', 20, 1 );
    function add_text_after_excerpt_single_product( $post_excerpt ){
        if ( ! $short_description )
            return;
    
        // Your custom text
        $post_excerpt .= '
    • Current Delivery Times: Pink Equine - 4 - 6 Weeks, all other products 4 Weeks
    '; return $post_excerpt; }

    Important - For variable products:
    I found that there is bug like in When using the filter woocommerce_short_descriptionthat is apparently also active for the product variation description, and it should not (as this is not documented in developers documentation)The solution is below:

    2) Adding your custom text at the end of the short description content, for all product types:

    add_action( 'woocommerce_single_product_summary', 'custom_single_product_summary', 2 );
    function custom_single_product_summary(){
        global $product;
    
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 );
        add_action( 'woocommerce_single_product_summary', 'custom_single_excerpt', 20 );
    }
    
    function custom_single_excerpt(){
        global $post, $product;
    
        $short_description = apply_filters( 'woocommerce_short_description', $post->post_excerpt );
    
        if ( ! $short_description )
            return;
    
        // The custom text
        $custom_text = '
    • Current Delivery Times: Pink Equine - 4 - 6 Weeks, all other products 4 Weeks
    '; ?>

    3) Adding your custom text after the short description:

    add_action( 'woocommerce_before_single_product', 'add_text_after_excerpt_single_product', 25 );
    function add_text_after_excerpt_single_product(){
        global $product;
    
        // Output your custom text
        echo '
    • Current Delivery Times: Pink Equine - 4 - 6 Weeks, all other products 4 Weeks
    '; }

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

提交回复
热议问题