在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定单词
Replace a specific word for BACS payment method in Woocommerce order edit pages
我是 woocommerce 的新手,通过使用 gettext hook 我可以用 "placed" 替换文本 "paid" 但我想根据一种情况显示此文本,即当客户选择电汇时(bacs ) 因为没有收到付款,所以只需要将文本替换为 placed
我附上了一张图片。
给你
首先让我们添加更改文本功能:
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 来创建条件,如果当前 post 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);
}
}
这个独特的轻量级挂钩函数将用 "Placed" 替换 BACS 支付方式的 "Paid":
add_filter( 'gettext', 'change_order_edit_text', 20, 3 );
function change_order_edit_text( $translated, $text, $domain ) {
global $pagenow;
// Only active on order edit pages
if( ! is_admin() || $pagenow != 'post.php' || get_post_type($_GET['post']) != 'shop_order' )
return $translated; // Exit
// Get the payment method used for the current order
$payment_method = get_post_meta( $_GET['post'], '_payment_method', true );
// Replacing the word "Paid" for BACS payment method only
if ( $translated == 'Paid on %1$s @ %2$s' && isset($payment_method) && $payment_method == 'bacs' )
$translated = __('Placed on %1$s @ %2$s', 'woocommerce');
return $translated;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
我是 woocommerce 的新手,通过使用 gettext hook 我可以用 "placed" 替换文本 "paid" 但我想根据一种情况显示此文本,即当客户选择电汇时(bacs ) 因为没有收到付款,所以只需要将文本替换为 placed
我附上了一张图片。
给你
首先让我们添加更改文本功能:
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 来创建条件,如果当前 post 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);
}
}
这个独特的轻量级挂钩函数将用 "Placed" 替换 BACS 支付方式的 "Paid":
add_filter( 'gettext', 'change_order_edit_text', 20, 3 );
function change_order_edit_text( $translated, $text, $domain ) {
global $pagenow;
// Only active on order edit pages
if( ! is_admin() || $pagenow != 'post.php' || get_post_type($_GET['post']) != 'shop_order' )
return $translated; // Exit
// Get the payment method used for the current order
$payment_method = get_post_meta( $_GET['post'], '_payment_method', true );
// Replacing the word "Paid" for BACS payment method only
if ( $translated == 'Paid on %1$s @ %2$s' && isset($payment_method) && $payment_method == 'bacs' )
$translated = __('Placed on %1$s @ %2$s', 'woocommerce');
return $translated;
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。