在某些条件下,如何更改 WooCommerce 结帐页面上的“您的订单”文本

2023-12-25

使用此代码,我可以更改结帐页面中的“您的订单”文本。但我需要更改我的购物车中的特定产品或虚拟产品是否在我的购物车中。

function custom_wc_translations($translated){
    $text = array(
    'Your order' => 'Your new phrase',
    'any other string' => 'New string',
    );
    $translated = str_ireplace(  array_keys($text),  $text,  $translated );
    return $translated;
}

add_filter( 'gettext', 'custom_wc_translations', 20 );

我找到了此代码,但针对特定产品的不同位置。我怎样才能改变它?

add_filter(  'gettext',  'change_conditionally_order_review_heading_text', 10, 3 );
function change_conditionally_order_review_heading_text( $translated, $text, $domain  ) {
    if( $text === 'Your Order' && is_checkout() && ! is_wc_endpoint_url() ){
        // HERE set the desired specific product ID
        $targeted_product_id = 1122;

        // Loop through cart items
        foreach( WC()->cart->get_cart() as $cart_item ) {
            if( $targeted_product_id == $cart_item['data']->get_id() )
                return __( 'İletişim Bilgileri', $domain );
        }
    }
    return $translated;
}

您要更改的文本位于checkout/form-checkout.php https://github.com/woocommerce/woocommerce/blob/1c4f02d2e2da598d202911acec0847fb26ae172a/templates/checkout/form-checkout.php line 54 https://github.com/woocommerce/woocommerce/blob/1c4f02d2e2da598d202911acec0847fb26ae172a/templates/checkout/form-checkout.php#L54

<h3 id="order_review_heading"><?php esc_html_e( 'Your order', 'woocommerce' ); ?></h3>

正如您将看到的,在之前和之后

  • woocommerce_checkout_before_order_review_heading and
  • woocommerce_checkout_before_order_review钩子,只有这些不适用于H3 tag

So gettext如果您不想覆盖模板文件,建议使用此选项。

要调试此文本和其他文本,您可以使用

function filter_gettext( $translated, $text, $domain  ) {
    echo '<pre>', print_r( $text , 1 ), '</pre>';
    return $translated;
}
add_filter( 'gettext',  'filter_gettext', 10, 3 );

所以要回答你的问题,这应该足够了

  • 检查特定产品 ID
function filter_gettext( $translated, $text, $domain  ) {
    if( $text == 'Your order' && is_checkout() && ! is_wc_endpoint_url() ) {        
        // HERE set the desired specific product ID
        $targeted_product_id = 1122;

        // Loop through cart items
        foreach( WC()->cart->get_cart() as $cart_item ) {
            if( $targeted_product_id == $cart_item['data']->get_id() ) {
                $translated = __( 'İletişim Bilgileri', $domain );
            }
        }
    }
    return $translated;
}
add_filter( 'gettext',  'filter_gettext', 10, 3 );

更新 10/2020

  • 您可以使用以下代码来检查多个产品ID
function filter_gettext( $translated, $text, $domain  ) {
    if( $text == 'Your order' && is_checkout() && ! is_wc_endpoint_url() ) {        
        // HERE set the desired specific product IDs
        $targeted_product_ids = array( 1122, 30, 815 );

        // Loop through cart items
        foreach( WC()->cart->get_cart() as $cart_item ) {
            // In array
            if ( in_array( $cart_item['data']->get_id(), $targeted_product_ids ) ) {
                $translated = __( 'İletişim Bilgileri', $domain );
            }
        }
    }

    return $translated;
}
add_filter( 'gettext',  'filter_gettext', 10, 3 );

  • 要检查您可以使用的虚拟产品
function filter_gettext( $translated, $text, $domain  ) {
    if( $text == 'Your order' && is_checkout() && ! is_wc_endpoint_url() ) {
        // Loop through cart items
        foreach( WC()->cart->get_cart() as $cart_item ) {
            // Is virtual
            if ( $cart_item['data']->is_virtual() ) {
                $translated = __( 'İletişim Bilgileri', $domain );
            }
        }
    }
    return $translated;
}
add_filter( 'gettext',  'filter_gettext', 10, 3 );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在某些条件下,如何更改 WooCommerce 结帐页面上的“您的订单”文本 的相关文章

  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 如何从字符串中删除所有数字?

    我想删除字符串 0 9 中的所有数字 我写了这段有效的代码 words preg replace 0 words remove numbers words preg replace 1 words remove numbers words
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • 如何确定当前使用哪个网格选项

    我将 Bootstrap 3 用于使用 PHP 和 HTML 创建的网页 随着响应式网格和类的开启引导程序3您可以将多个类分配给一个 div 以根据当前屏幕尺寸定义不同的宽度 例如 div class col lg 3 col md 3 c
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • Doctrine 1 和 Symfony 1 的多个主键?

    我已经知道在 Symfony 1 和 Doctrine 1 中不可能使用多个主键 但是你们知道有什么好的解决方法吗 除了多对多关系之外 原则 1 不适用于多列上的主键 但如果你想使用多对多关系 请像这样使用 BlogPost columns
  • 删除 woocommerce 店面主页标题 php

    我正在使用 woocommerce 的店面主题 我需要用 php 删除主页标题 h1 我知道 css 解决方案 但我不想使用它 因为我想将 h1 添加到该页面的其他位置 并且在一个页面中包含 2 个 h1 对 seo 不利页 我也知道删除页
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • 具有更改用户代理上下文的 file_get_contents 不起作用

    我正在尝试获取页面的阅读数和点赞数 网址是 https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg https mp weixin qq com s NPavBeHc8VdWXeSL6kfLRg 您必
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • UTF-8、PHP、Win7 - 现在是否有解决方案可以使用 php 在 Win 7 上保存 UTF-8 文件名?

    更新 只是为了不让您阅读所有内容 PHP 开头 7 1 0alpha2 在 Windows 上支持 UTF 8 文件名 感谢阿纳托尔 贝尔斯基 根据 stackoverflow 上的一些链接 我找到了部分答案 https stackover
  • wordpress - 像 stackoverflow 中那样内嵌 ajax 注释

    我有一个 WordPress 博客 希望为人们提供与 stackoverflow 中添加评论相同的用户体验 有很多评论 ajax 插件 但我找不到一个可以使用的插件 它允许您在主页上内联 进入并添加评论 而无需先深入到单独的单个帖子页面 任
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • 监听文件夹和文件(更改)

    可以直接在 PHP 或 Node 上监听文件夹和文件的更改 通过事件 还是我需要创建自己的方法来执行此操作 Example 我需要听文件夹 user 如果我将一些文件添加到该目录中 PHP 或 Node 会收到信息并运行PathEvent
  • PHP 中的多个插入查询[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个 php html 表单 它将结果插入到狗展数据库中 问题是 无论我做什么 我都会收到此错误 查询失败 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 INSE
  • Doctrine DQL 从 join 返回平面数组

    我通过 DQL 中的常规 LEFT JOIN 选择 3 个实体 它们通过连接表关联 连接表还定义了实体以及带注释的关系 查询执行没有问题 但我的结果作为平面数组返回 我期望一个包含三个实体作为每个索引的数组元素的数组 SELECT e1 e

随机推荐

  • 如何在SQL Server 2008中检查字符串是否是阿拉伯语言

    如何检查字符串是否为阿拉伯语 我必须将语言 ID 列更新为英语或阿拉伯语 IF PATINDEX RTRIM STRING 0 BEGIN SET RETURNVALUE A END ELSE IF PATINDEX A Za z RTRI
  • Android Retrofit 预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ 处为 STRING

    我在 Android 应用程序中使用 okhttp Retrofit 来发出网络请求 在其中一个请求中 我收到此错误 com google gson JsonSyntaxException java lang IllegalStateExc
  • PEG 和 CFG 有什么区别?

    由此维基百科 http en wikipedia org wiki Parsing expression grammar Semantics page 之间的根本区别 上下文无关语法和解析 表达式语法是 PEG 的 选择运算符是有序的 如果
  • Google Analytics - 使用两个帐户进行异步跟踪

    我目前正在同一页面上使用两个不同的跟踪代码来测试 GA 新的异步代码片段 gaq push setAccount UA XXXXXXXX 1 trackPageview b setAccount UA XXXXXXXX 2 b trackP
  • 将闭包更新到 Swift 3 - @escaping

    我已将代码更新到 Xcode 8 0 beta 6 但我陷入了似乎与新的非转义闭包默认值有关的问题 在下面的代码中 Xcode 建议添加 escaping在 前面completion 在下面代码的第一行中 但仍然无法编译并继续循环 EDIT
  • “向‘日期时间’列添加值导致溢出。”

    In the MSDN明确表示 日期参数不能递增到其数据类型范围之外的值 在以下语句中 与日期值相加的数值超出了日期数据类型的范围 返回以下错误消息 向 日期时间 列添加值导致溢出 以及例子 SELECT DATEADD year 2147
  • 将 JSON 对象反序列化为 C# 对象

    我正在尝试使用 RestSharp 读取一些 json 数据 但我在读取 json 对象时遇到一些问题 我有这样的回应 expand html self
  • jquery 函数根本不触发

    真正的愚蠢问题 我想我现在应该已经明白了这一点 但我显然错过了一些东西 我希望我的函数在页面加载后立即触发 以检查变量的值 并根据该值使按钮出现或消失 但我写的函数永远不会被调用 我将该函数放置在 Load 和 document ready
  • 容器管理的事务无法回滚

    我正在玩交易 我配置了 JPA 来处理我的实体 并希望将它们保存在数据库中 问题是 当我的程序抛出runtimeException时 CMT不会回滚 这个 容器事物 背后的想法很难理解 而且记录也很少 transactional 托管事务
  • 如何使用 Java 更有效地反转数字

    我编写了一些代码来反转数字 如下所示 long num 123456789 char arr String valueOf num toCharArray List
  • 当线程被中断/终止时,finally 块可能不会被执行吗?

    In Java 教程 http docs oracle com javase tutorial essential exceptions finally html它说的是try finally 注意 如果在执行 try 或 catch 代码
  • JPA动态持久性单元名称

    我需要一种方法来动态指定 EJB 中的持久性单元 简化示例 我有一个使用多个数据库作为数据存储的应用程序 每个数据存储在结构上都是相同的 根据连接到应用程序的客户端 我需要从中访问数据 特定的数据存储 因此 我想使用相同的EJB 这样业务逻
  • 将私有方法设为最终方法?

    将私有方法设为final有好处吗 这会提高性能吗 我认为 private final 没有多大意义 因为私有方法不能被重写 因此 方法查找应该与使用 Final 时一样高效 将私有辅助方法设置为静态 如果可能 会更好吗 最好用什么 priv
  • 从 Spring Boot 中的基本身份验证中删除 WWW-authenticate 标头

    我正在使用 SpringBoot 设计 REST API 与此同时 我正在构建一个使用该 API 的 SPA 为了安全起见 我选择了基本身份验证 它很容易设置 我现在面临401挑战问题 当我的 SPA 向我的 API 发出请求时 如果身份验
  • 为什么 Python easy_install 无法在我的 Mac 上运行?

    我有一台运行 Python 2 6 的 Mac 当我尝试使用时easy install我收到这条消息 usr bin easy install 2 6 7 UserWarning Module pkg resources was alrea
  • scrapy 不会添加所有项目中不存在的字段?

    我从链接获取字段 a b c 并生成 OrderedDict 但是 如果满足条件 我还不会屈服 首先我对另一个链接发出请求 将 a b c 字典传输到该请求 通过部分 并从第二个链接获取字段 d e 并屈服d e a b c 所以有些项目应
  • 在 CAML 查询中使用部分日期

    我的列表中的标题列仅包含年份 我想做一个视图 只显示过去 3 年的情况 我尝试在列表定义中使用 CAML 查询
  • 从左连接中选择时出现 NullReferenceException

    我正在尝试进行 2 个左连接 我已经在 SQL Server 中测试了查询 它可以工作 但我无法在 linq 中重新创建查询 查询 select Master InvoiceId Consumer ConsumerId ConsumerCh
  • DDPG(深度确定性策略梯度),actor是如何更新的?

    我目前正在尝试在 Keras 中实现 DDPG 我知道如何更新批评家网络 正常的 DQN 算法 但我目前坚持更新演员网络 它使用以下方程 因此 为了减少演员网络对其权重 dJ dtheta 的损失 它使用链式法则来获取 dQ da 来自批评
  • 在某些条件下,如何更改 WooCommerce 结帐页面上的“您的订单”文本

    使用此代码 我可以更改结帐页面中的 您的订单 文本 但我需要更改我的购物车中的特定产品或虚拟产品是否在我的购物车中 function custom wc translations translated text array Your ord