php - 在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定单词
问题描述
我是 woocommerce 的新手,通过使用 gettext 钩子可以将文本“已付款”替换为“已放置”,但我想根据一个条件显示此文本,即当客户选择电汇(bacs)时,因为当时没有收到付款文本需要替换为放置
解决方案
干得好
首先让我们添加更改文本功能:
function change_text($translated_text, $text, $domain)
{
switch ($translated_text) {
case 'Paid on %1$s @ %2$s':
$translated_text = __('Placed on %1$s @ %2$s', 'woocommerce');
break;
}
return $translated_text;
}
条件:
现在让我们通过使用支付方式电汇获取所有订单 ID 来创建我们的条件,如果当前的帖子 ID 与我们的订单 ID 匹配,那么我们可以调用更改文本函数,如下所示:
add_action('admin_head', 'current_screen');
function current_screen()
{
global $post;
if (empty($post)) {
return;
} else {
$postid = $post->ID;
}
$args = array(
'payment_method' => 'bacs',
'return' => 'ids',
);
$ordersid = wc_get_orders($args);
if (!empty($postid) && in_array($postid, $ordersid)) {
add_filter('gettext', 'change_text', 20, 3);
}
}
推荐阅读
- mysql - 如何应用规则根据条件和分组数据更新字段中的记录
- coq - Coq 无法统一——如何改变假设?
- python - Django - 如何在模板复选框中获取选中的对象?
- stripe-payments - 如何按代码检索 Stripe 促销代码
- python - 如何验证函数是否已被pytest命中
- php - Laravel UniSharp 文件管理器已上传,但未显示图像
- javascript - 修改元素时更新 useState() 数组 REACT
- java - Match two nested logical AND OR expression tree objects
- adobe - Adobe AEM CMS - 如何获得开发人员许可证以在本地安装以评估产品?
- javascript - 通过文本框进行 iframe 导航?