当 Woocommerce 购物车为空时更改元素颜色

Posted

技术标签:

【中文标题】当 Woocommerce 购物车为空时更改元素颜色【英文标题】:Change Element Color When Woocommerce Cart Is Empty 【发布时间】:2020-03-10 20:54:29 【问题描述】:

Wordpress 网站,使用 Oxygen Builder 构建。我的菜单附近有一个线性图标(购物车)。当购物车中有物品(非空)时,我正在尝试更改该图标的颜色。对于我的生活,我无法让它工作。它要么使网站崩溃,要么破坏正文边缘,等等。

我在 functions.php 中尝试了以下多种变体:

add_action('wp_footer', 'crit_cart') ;
function crit_cart() 
    if(sizeof( WC()->cart->get_cart() ) > 0 ) 
        jQuery('#fancy_icon-62-12').css('color','blue');
    

function crit_cart()  
if(WC()->cart->get_cart_contents_count() != 0)
        echo "<script type=text/javascript> jQuery("#link-64-12").css('color','#47beff');</script>";

add_filter('wp_headers', 'crit_cart');

我已经尝试过最后一个有和没有 jQuery 之前的回声。

任何帮助将不胜感激。提前致谢!

【问题讨论】:

【参考方案1】:

您的想法是正确的,但是存在语法错误。

首先,您尝试从 PHP 运行 jQuery。 PHP运行在后端,jQuery/JS运行在前端,所以不能这样运行。

在第二个中,您做得正确 - 将脚本回显到前端以运行,但是您的第二个引用结束了您的回显,它将返回错误。试试这个:

add_action('wp_footer', 'crit_cart') ;
function crit_cart() 
    if(sizeof( WC()->cart->get_cart() ) > 0 ) : ?>

    <script type='text/javascript'>
        jQuery('#fancy_icon-62-12').css('color','blue');
    </script>
    <?php
    endif;

在此示例中,您正在从 PHP 中转义,并将直接将脚本回显到 DOM。由于它是一个脚本,它会在那个时候运行。

希望这会有所帮助。

【讨论】:

正是我需要的帮助。它完美地工作。谢谢!

以上是关于当 Woocommerce 购物车为空时更改元素颜色的主要内容,如果未能解决你的问题,请参考以下文章

如果购物车为空,购物车页面将重定向到 WooCommerce 中的商店页面?

Woocommerce - 未登录用户的购物车为空

当textfield为空时禁用按钮等待其他文本字段中的任何更改

即使购物车在 WooCommerce 中为空,也可以通过 URL 中的 GET 方法应用优惠券折扣

当输入文件上的字段为空时,XSLT 2.0 如何跳过写入元素

WooCommerce - 更改数量触发购物车中的 AJAX 调用