当前位置: 首页 > 知识库问答 >
问题:

如果元素在WP/WooCommerce中有精确的文本,如何有条件地添加类名

微生耘豪
2023-03-14

我现在正在一家网店工作,想做一些有条件的渲染,但我不确定如何让它工作。现在我有一个脚本,它为篮子中的所有产品提供一个与产品ID匹配的类名。

一些产品是可变产品,当选择时,包含在主要对象的价格中。该商品也可以单独购买,因此共享相同的产品ID。我想做的是只将类名添加到价格中包含的产品中。

我的想法是做一个if语句来确定产品是否有文本“包含在价格中”作为其产品总数,如果有,则添加类名。这个如果陈述让我很悲伤。下面是将类名添加到购物车(以及结账页面)中的所有内容的代码:


Gives cart items a classname equal to the product ID

function so_42237701_cart_item_class( $class, $values, $values_key ) {

    if ( isset( $values[ 'product_id' ] ) ) {
        $class .= ' custom-' . $values[ 'product_id' ];
    }

    return $class;
}
add_filter( 'woocommerce_cart_item_class', 'so_42237701_cart_item_class', 10, 3 );

以及结帐:

function additional_class_to_order_item_classes ( $class, $values, $values_key ) {

    if ( isset( $values[ 'product_id' ] ) ) {
        $class .= ' custom-' . $values[ 'product_id' ];
    }

    return $class;
}
add_filter( 'woocommerce_order_item_class', 'additional_class_to_order_item_classes', 10, 3 );

我怎样才能让它有条件呢?

共有1个答案

齐高寒
2023-03-14

变体产品持有当前返回的父ID,也有变体ID,您可以从$值中获得,因此您的代码应该如下所示

function so_42237701_cart_item_class( $class, $values, $values_key ) {
    //If we have variation ID its variable product
    if (!empty($values[ 'variation_id' ])) {
        $class .= ' custom-' . $values[ 'variation_id' ];
    } else {
        $class .= ' custom-' . $values[ 'product_id' ];
    }

    return $class;
}
add_filter( 'woocommerce_cart_item_class', 'so_42237701_cart_item_class', 10, 3 );
 类似资料:
  • 问题内容: 是否可以根据条件向标签添加内容?像在此示例中一样,当我只想在第一次迭代中添加时(仅用于的第一个元素)? 问题答案: 是的,在这种情况下,AngularJS具有两个指令: 可以使用ng-show / ng-hide指令族基于评估表达式的结果来隐藏(通过使用显示CSS规则)DOM 3的一部分。 如果我们想有条件地物理删除/添加DOM的一部分,那么ng-switch指令家族(ng-switc

  • 我在div里有100个按钮: 我想在引导样式中样式化所有按钮。所以,我需要到处换衣服 有可能吗?正确的语法是什么? 谢谢你!!

  • 仅当值在MDC上设置时,如何在log4j条目上打印密钥/值对? 例如,我目前有以下模式: 仅当MDC上有此密钥的值时,我才想打印“client=”部分。 例如,当启动我的程序时,将不会有客户端登录,因此将使用以下模式记录日志: 但是,在客户端登录后(并且在我用客户端密钥设置MDC后),我需要使用以下方法打印它: log4j上有这样的“条件模式”吗? 非常感谢。

  • 本文向大家介绍aurelia 有条件地添加或删除HTML元素,包括了aurelia 有条件地添加或删除HTML元素的使用技巧和注意事项,需要的朋友参考一下 示例 与show.bind使用时不同,if.bind如果提供的绑定值是,则元素将从页面中删除;如果值为,则将元素false添加到页面中true。 分组元素 有时可能需要一次性添加或删除整组元素。为此,我们可以使用<template>元素来显示或

  • 我有以下一段代码: 有没有一种很好的方法可以有条件地添加元素,比如使用流操作?我只想在列表为空时添加method2中的元素,否则返回,以此类推。 编辑:值得一提的是,这些方法包含繁重的逻辑,因此需要防止执行。

  • 我想有条件地向对象添加一个属性。目前我有这个: 问题是如果汽车。电池不存在我有电池:未定义。如果对象中不存在该属性,我宁愿不要该属性。我怎样才能做到这一点?