首页 > 解决方案 > 在 Woocommerce 订单编辑页面中替换 BACS 付款方式的特定单词

问题描述

我是 woocommerce 的新手,通过使用 gettext 钩子可以将文本“已付款”替换为“已放置”,但我想根据一个条件显示此文本,即当客户选择电汇(bacs)时,因为当时没有收到付款文本需要替换为放置

我附上了一张图片。 在此处输入图像描述

标签: phpwordpresswoocommerceorderspayment-method

解决方案


干得好

首先让我们添加更改文本功能:

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);
    }
}

推荐阅读