根据产品类型向产品价格添加自定义文本标签

2023-12-30

我有一个小问题还无法解决。 我有这个WooCommerce 网站 http://www.wholesaleunderwear.co/product/men-s-crew-sport-sock-w-logo/具有可变产品,目前价格显示方式如下:

每打 5.50 美元 – 每打 100.00 美元

我使用这个 CSS 规则,在每个价格后添加“每打”,但这在当前情况下没有意义。

.price .amount:after {
content: " per dozen";
}

我想以这种方式显示该可变产品的价格:

$5.50 每打– 100.00 美元每箱(数量)

预先感谢您的任何帮助。


在这里,您将能够根据需要使用挂钩的自定义函数添加自定义标签woocommerce_price_html and woocommerce_variation_price_html过滤器挂钩(用于简单和变量产品。

对于变量产品中的最低/最高价格,我们需要一个挂钩的独立函数woocommerce_variation_sale_price_html过滤钩。

Update:因为我的代码现在也将处理单个产品上的“每打”,你必须删除你的自定义 CSS 规则.price .amount:after { content: " per dozen";}.

这将避免到处都有重复的“每打”。

但无法根据所选属性值在实时价格上设置不同的标签。为此,唯一的方法是使用JavaScript/jQuery,因为这是客户端的现场活动......

Update2
这是工作和测试的代码(见最后的截图):

add_filter('woocommerce_variation_price_html','prices_custom_labels', 10, 2 );
add_filter('woocommerce_price_html','prices_custom_labels', 10, 2 );
function prices_custom_labels( $price, $product ){

    // Custom label name
    $per_dozen = ' '. __('per dozen', 'woocommerce' );

    // Set HERE your "quantity" attribute slug
    $attribute_qty_slug = 'pa_quantity';

    $attribute_qty_slug_key = 'attribute_'.$attribute_qty_slug;
    $append_label = '';

    // 1) Variable products
    if ($product->product_type != 'simple' && $product->variation_id ) {

        // Getting the attribute "quantity" value
        $attribute_qty_is_set = $product->variation_data[$attribute_qty_slug_key];

        // if "quantity" not set we display " per dozen"
        if( ! $attribute_qty_is_set )
            $append_label = $per_dozen;


        // Outputed price + custom label
        $price = '<ins class="highlight">'.woocommerce_price( $product->regular_price ).$append_label.'</ins>';
    }
    // 2) Simple products
    else
    {
        // Here the output price + custom default label
        $price = '<ins class="highlight">'.woocommerce_price( $product->regular_price ).$per_dozen.'</ins>';
    }
    return $price;
}

add_filter('woocommerce_variable_price_html', 'prices_custom_labels_min_max', 20, 2);
function prices_custom_labels_min_max( $price, $product) {

    // Custom label name
    $per_dozen = ' '. __('per dozen', 'woocommerce' );
    $per_case = ' '. __('per case', 'woocommerce' );

    // Set HERE your quantity attribute slug
    $attribute_qty_slug = 'pa_quantity';


    // Getting the min and max variations prices
    $variation_min_reg_price = $product->get_variation_regular_price('min', true);
    $variation_max_reg_price = $product->get_variation_regular_price('max', true);
    $variation_reg_price = $product->get_variation_regular_price();


    if( $variation_min_reg_price == $variation_max_reg_price )
    {
        $price = '<ins class="highlight">'.woocommerce_price($variation_reg_price) . $per_dozen . '</ins>';
    }
    else
    {
        if( !in_array( $attribute_qty_slug, array_keys( $product->get_attributes() ) ) )
        {
            $price = '<ins class="highlight">' . woocommerce_price($variation_min_reg_price) . $per_dozen . ' - ' . woocommerce_price($variation_max_reg_price) . $per_dozen . '</ins>';
        }
        else
        {
            $price = '<ins class="highlight">' . woocommerce_price($variation_min_reg_price) . $per_dozen . ' - ' . woocommerce_price($variation_max_reg_price) . $per_case . '</ins>';
        }
    }
    return $price;
}

代码位于活动子主题(或主题)的 function.php 文件中或任何插件文件中.


这是我的测试服务器的真实截图:

这段代码经过测试并且确实有效。


相关回答:

  • 当产品促销时,将自定义文本标签添加到价格中 https://stackoverflow.com/questions/42158091/adding-custom-text-labels-to-the-prices-when-products-are-on-sale/42159533#42159533
  • 将折扣百分比添加到正在销售的可变产品 https://stackoverflow.com/questions/42230027/adding-for-variable-products-on-sale-the-discounted-percentage/42230308#42230308
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据产品类型向产品价格添加自定义文本标签 的相关文章

随机推荐

  • Python Connexion — 400 响应错误中的控制“类型”键

    我在用着连接 https github com zalando connexion 一个用于 REST API 的 python 库 具有 swagger 定义 它对于实际请求正常工作 但是当出现错误情况 例如验证失败 时 它会返回如下响应
  • chrome.storage.sync 与 chrome.storage.local

    我试图了解如何使用 chrome storage api 我已将以下内容包含在我的manifest json permissions activeTab storage 然后 我使用开发工具打开了一个新选项卡并切换了
  • s3文件上传不返回响应

    我正在使用 Node AWS SDK 将文件上传到现有的 S3 存储桶 使用下面的代码 文件最终上传 但似乎有几次没有返回状态代码 另外 当文件成功上传时 return 语句不会执行 Code exports create function
  • Sharepreference来存储int值

    I have intvalue 我希望当我们单击警报对话框的正或负按钮时它会增加 1 并且即使用户关闭应用程序也存储 int 值 我已经完成了这些 但我不知道为什么这不起作用 int counter 在 oncreate 中 initA p
  • Google GMail API 服务帐户可列出多个帐户的电子邮件

    我正在开发一个 CRM 应用程序 其中所有员工用户都有一个位于同一域下的 GMail 帐户 我是这个域的管理员 之前 我使用 IMAP 对 CRM 中的所有 GMail 用户进行自定义访问 以便获取他们发送和接收的所有电子邮件 为此 我询问
  • 通过 VBA 在 Outlook 内部浏览器中打开网站

    我正在寻找通过 VBA 打开给定的网页 我可以使用以下方法来做到这一点 Set browser CreateObject InternetExplorer Application browser Navigate http google c
  • D3 中的饼图(甜甜圈)图段顺序

    我有一个使用 d3 和 jQuery 滑块构建的圆环图 允许用户在不同的数据点之间进行选择 该图表动画显示了数据值之间的过渡 一切都很好 问题 这些段始终按逆时针大小顺序渲染 从最大到最小 这意味着分段根据其大小在图表中切换其位置 这种行为
  • 您可以使用什么来让应用程序能够接收 SMS 消息?

    您需要使用某种提供商吗 您可以设置自己的短信服务器吗 是否存在任何开源解决方案 我是短信新手 所以任何关于如何实现这一点的见解都会很棒 我偏爱 Java 但任何语言都可以 这很容易 是的 您需要一个 短信网关 提供商 那里有很多 这些公司提
  • jsTree如何更改ajax url并重新加载数据

    jstree demo div2 jstree core data url tree ashx id id dataType json needed only if you do not supply JSON headers checkb
  • iTunes Connect - 总安装量与已安装该应用程序的当前设备的比较

    我如何知道或计算 iOS 应用程序的总安装量与安装该应用程序的当前设备的比较 我有总计单位 据我所知 这是总安装数 而不是现在有多少设备拥有我的应用程序 您可以使用第三方框架获取有关应用程序统计信息的更多详细信息 例如Flurry http
  • “模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用”错误

    为什么我收到错误 模板只能与字段访问 属性访问 一维数组索引或单参数自定义索引器表达式一起使用 在这段代码中 model IEnumerable
  • 如何在 R 中进行词形还原?

    这个问题可能是重复的R 或 python 中的词形还原器 am are is gt be https stackoverflow com questions 22993796 lemmatizer in r or python am are
  • 显示 xml 而不是站点

    我正在学习谷歌云 所以我尝试使用存储服务在那里部署我的反应应用程序 为此 我创建了一个名为 Travelfrontend 的存储桶 并从使用时生成的构建文件夹上传了文件和文件夹yarn build 我没有任何域名 所以我尝试从https s
  • 将 jwt 令牌发送到 wif wcf 服务

    我在向 wcf 服务发送 jwt 令牌时遇到问题 遵循了这个 它几乎有效 将 JWT SecurityToken 传递给 WCF 客户端 https stackoverflow com questions 16312907 deliveri
  • 在 VsCode 中将 () 替换为 {} 最有效的方法是什么?

    我正在使用 Visual Studio Code 经常发现自己必须替换括号 code 带大括号 code
  • Visual Studio 2013 发布失败超出最大连接数

    我正在使用 VS Express 2013 for Web 进行发布 在发布时其中一个 dll 上出现套接字错误 现在我根本无法发布 我收到一条 VS 错误 指出已超出此站点的最大连接数 了解更多信息 http go microsoft c
  • Mysql 返回子句等效

    我是 MySql 的新手 所以请温柔一点 是否有相当于RETURNINGOracle 中的子句或Inserted DeletedMySQL 中 SQL Server 中的表 我想做的是 从表 A 中删除一组行 将删除的行集插入表 B 中 请
  • SQL Server 视图中的模拟?

    是否可以通过模拟创建视图 类似于 execute as 在存储过程中 我想在单独的模式中创建一些视图 一些用户应该得到SELECT and UPDATE访问这些视图 以便它们能够更改基础表 但无需直接更新表 有观点可能吗 不 这是不可能的
  • 集成express.js应用程序和docpad

    我一直在使用 docpad 预先生成前端 html js 应用程序 使用docpad generate env static 经过几次挂断和 balupton 的错误修复后 它现在工作得很好 并节省了我很多时间 我只是将这些文件复制到现有的
  • 根据产品类型向产品价格添加自定义文本标签

    我有一个小问题还无法解决 我有这个WooCommerce 网站 http www wholesaleunderwear co product men s crew sport sock w logo 具有可变产品 目前价格显示方式如下 每打