You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Woodmart主题下如何调整WooCommerce产品变体描述的显示位置(移至woocommerce_single_product_summary并移除原位置)

Woodmart主题下如何调整WooCommerce产品变体描述的显示位置(移至woocommerce_single_product_summary并移除原位置)

嗨,我看你已经迈出了把变体描述移到woocommerce_single_product_summary区域的第一步,但遇到了原位置描述还在的问题对吧?别担心,咱们一步步来解决这个问题——既要让变体描述乖乖待在你想要的新位置,还要彻底把原位置的描述给去掉。

你的现有思路其实是对的,用JS监听变体选择事件来更新新容器的内容,咱们只要在这个基础上,加上移除原描述的操作就行。下面给你两种靠谱的方案,你可以根据自己的需求选:

方案一:JS隐藏原描述+完善新位置逻辑(简单直观)

这个方案直接在你现有的代码基础上修改,同时处理原描述隐藏和空变体时的内容清空,体验更流畅:

add_action( 'woocommerce_single_product_summary', 'variable_product_description_on_selection', 25 );
function variable_product_description_on_selection() {
    global $product;
    if ( ! $product->is_type( 'variable' ) ) return;

    // 给新容器加个自定义类,避免和原容器冲突,方便后续样式调整
    echo '<div class="variation-description custom-variation-desc"></div>';

    wc_enqueue_js( "
        // 页面加载完成就立刻隐藏原位置的变体描述
        jQuery(document).ready(function($) {
            $('.woocommerce-variation-description').hide();
        });

        // 选择变体时更新新容器的描述内容
        $(document).on('found_variation', 'form.cart', function( event, variation ) {
            $('.custom-variation-desc').html(variation.variation_description);
        });

        // 重置变体选择时清空新容器,避免残留内容
        $(document).on('reset_data', 'form.cart', function() {
            $('.custom-variation-desc').empty();
        });
    " );
}

方案二:PHP层面移除原描述+JS更新新位置(更彻底,无闪现)

如果担心页面加载时原描述会短暂闪现,那咱们直接从PHP层面把原描述的输出给移除掉,从根源解决问题:

// 先移除WooCommerce默认的原位置变体描述输出
remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_description', 10 );

// 再在目标位置添加变体描述的容器和逻辑
add_action( 'woocommerce_single_product_summary', 'variable_product_description_on_selection', 25 );
function variable_product_description_on_selection() {
    global $product;
    if ( ! $product->is_type( 'variable' ) ) return;

    echo '<div class="variation-description custom-variation-desc"></div>';

    wc_enqueue_js( "
        // 选择变体时更新新容器内容
        $(document).on('found_variation', 'form.cart', function( event, variation ) {
            $('.custom-variation-desc').html(variation.variation_description);
        });

        // 重置变体时清空内容
        $(document).on('reset_data', 'form.cart', function() {
            $('.custom-variation-desc').empty();
        });
    " );
}

几个关键注意事项

  • 代码要加在哪里? 你可以把代码放到子主题的functions.php文件末尾,或者用专门的自定义代码插件(比如Code Snippets)来添加,千万别直接修改Woodmart主题的核心文件,不然主题更新后代码就丢了。
  • 为什么用优先级25? woocommerce_single_product_summary钩子下的元素有不同的优先级数值,25这个值能让你的变体描述放在价格、加入购物车按钮附近的位置。如果你想调整它在这个区域内的上下位置,直接修改这个数字就行——数字越小越靠前,越大越靠后。
  • 要是方案一隐藏后原描述还能看到? 那可能是Woodmart主题给原描述加了自定义类名。你可以按F12打开浏览器开发者工具,找到原变体描述的元素,看看它的类名是什么,然后把JS里的.woocommerce-variation-description换成对应的类名就OK了。

这样操作下来,原位置的变体描述就会被彻底移除/隐藏,新的描述只会出现在你指定的woocommerce_single_product_summary区域里,完美解决你的问题!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 08:19:34