【问题标题】:How to add more info (excerpt) on hover over product in WooCommerce如何在 WooCommerce 中将鼠标悬停在产品上添加更多信息(摘录)
【发布时间】:2020-10-25 23:43:26
【问题描述】:

我有一家 Woocommerce 商店,我想显示更多关于将鼠标悬停在产品上的信息,如下所示:https://www.lekarnar.com/

我在functions.php中添加了一些代码以在产品页面上显示部分摘录:

function woocommerce_after_shop_loop_item_title_short_description() {
    global $product;
    if ( ! $product->get_short_description() ) return;
    ?>
    
    <div itemprop="description"> <?php echo substr(apply_filters( 'woocommerce_short_description', $product->post->post_excerpt ),0,130); echo '...' ?> </div>
    <?php
}
add_action('woocommerce_after_shop_loop_item_title', 'woocommerce_after_shop_loop_item_title_short_description', 5);

此代码显示了附加文本,我只想在悬停时显示在其他所有内容下方。

我也试过这个:How Do I Add product descriptions (short) to hover box in woocommerce?

但这隐藏了商品的名称和价格,仅在悬停时显示。

【问题讨论】:

  • 要不要多发些代码啊,一行就有点复杂了

标签: php css wordpress woocommerce product


【解决方案1】:

我为您编写了这段代码,它应该可以工作。只需将其添加到您的functions.php

add_action( 'woocommerce_after_shop_loop_item_title', 'wc_add_short_description' );

function wc_add_short_description() {
    global $product;

    ?>
        <div class="descShow" itemprop="description">
            <?php echo apply_filters( 'woocommerce_short_description', $product->post-> post_excerpt ) ?>
        </div>
        <style>
        .descShow{
            display:none;
        }
        
        li.product:hover .descShow{
            display: block;
        }
        
        </style>
    <?php
}

编辑:我添加了一些过渡效果,以便它可以平滑地隐藏和显示。请改用此代码:

add_action( 'woocommerce_after_shop_loop_item_title', 'wc_add_short_description' );

function wc_add_short_description() {
    global $product;

    ?>
        <div class="descShow" itemprop="description">
            <?php echo apply_filters( 'woocommerce_short_description', $product->post-> post_excerpt ) ?>
        </div>
        <style>
        .descShow{
        max-height: 0;
    transition: max-height 0.5s ease-out;
    overflow: hidden;
        }
        
        li.product:hover .descShow{
           max-height: 1000px;
    transition: max-height 0.5s ease-in;
        }
        
        </style>
    <?php
}

编辑数字 2 以使描述显示在其他产品之上。使用此代码:

add_action( 'woocommerce_after_shop_loop_item', 'wc_add_short_description' );

function wc_add_short_description() {
    global $product;

    ?>
        <div class="descShow" itemprop="description">
            <?php echo apply_filters( 'woocommerce_short_description', $product->post-> post_excerpt ) ?>
        </div>
        <style>
        .descShow{
        max-height: 0;
    transition: max-height 0.5s ease-out;
    overflow: hidden;
    position: absolute;
    z-index:2;
    background-color: #F0F0F0;
   
        }
        
        li.product:hover .descShow{
           max-height: 1000px;
    transition: max-height 0.5s ease-in;
        }
        
        
        </style>
    <?php
}

【讨论】:

  • 太棒了!谢谢!它只在我想要的悬停时显示描述。您是否也知道如何更改 CSS 以在下面的产品顶部显示描述?同样的问题在这里,但我找不到答案:stackoverflow.com/questions/55087968/…
  • @Mojca 是的,我使用更新的代码为我的答案添加了新的编辑。你可以使用它,它会出现在其他产品上。
  • 我认为第一次编辑很棒,也许我会同意。第二个编辑显示所有内容之上的描述。我不知道如何将整个产品框显示为下面产品的一个元素(因为它在这里:lekarnar.com)。你可以在我的测试环境中看到它现在的样子(我做了一些 CSS 更改):test-environment.anaya.si/vsi-izdelki
  • @Mojca 我也会亲自进行我的第一次编辑。当您尝试像这样弹出元素时,事情开始变得复杂。
猜你喜欢
  • 2021-10-27
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
  • 2018-09-09
  • 2017-03-11
相关资源
最近更新 更多