更改插件中的文本字符串

时间:2019-10-18 作者:clayRay

我正在使用WooCommerce等待列表插件,但我想将其更改为针对尚未发布的产品,即“兴趣表达”。

要做到这一点,我需要更改很多字符串,例如一个字符串,上面写着“加入等待列表,在该产品可用时通过电子邮件发送”。

我在插件中找到了设置位置:文件。。。

wcwl等待列表模板函数。php

。。。在插件的根文件夹中。

如果这是一个主题,我可以在我的子主题中复制这个文件并修改字符串,但由于它是一个插件,我完全不知所措。而重新声明函数会导致错误。任何帮助都将不胜感激。

这是函数的代码。。。

/**
 * Get the default intro text to display above the waitlist dependent on product type
 *
 * @param string $product_type simple/variation/grouped (variation is the same as simple by default)
 * @param bool   $user_is_on_waitlist
 *
 * @return mixed|void
 */
function wcwl_get_intro_text( $product_type = \'simple\', $user_is_on_waitlist = false ) {
    $context = \'join\';
    $text    = __( \'Join the waitlist to be emailed when this product becomes available\', \'woocommerce-waitlist\' );
    if ( $user_is_on_waitlist ) {
        $context = \'leave\';
        $text    = __( \'You are on the waitlist for this product\', \'woocommerce-waitlist\' );
    } elseif ( \'grouped\' === $product_type || \'event\' === $product_type ) {
        $context = $product_type;
        $text    = __( \'Check the box alongside any Out of Stock products and update the waitlist to be emailed when those products become available\', \'woocommerce-waitlist\' );
    }

    return apply_filters( \'wcwl_\' . $context . \'_waitlist_message_text\', $text );
}

2 个回复
最合适的回答,由SO网友:Hector 整理而成

您可以使用translation 文件

默认情况下,插件文本为英语。即使您的网站语言是英语,您也可以生成新的语言文件并更改其中的文本。

假设插件文件夹名称(plugin slug,plugin text domain)为my-plugin 并且您的站点语言设置为English (UK) 在管理仪表板->设置->常规设置->站点语言中。

因此,使用Poedit 并将翻译语言设置为English (UK). 然后根据需要更改文本并保存翻译文件。您可以使用pot 插件随附的文件,并且大多数时间它存在于language 文件夹

它将为您提供两个名为en_GB.poen_GB.mo. 将文件重命名为my-plugin-en_GB.pomy-plugin-en_GB.mo 并将其移动到wp-content/languages/plugins 文件夹刷新站点并更改文本。

SO网友:Chetan Vaghela

您可以使用过滤器更改文本。在活动主题的函数中添加以下代码。php文件以更改文本形式的加入等待列表消息。以下是您可以参考的文档:https://docs.woocommerce.com/document/woocommerce-waitlist/

add_filter( \'wcwl_join_waitlist_message_text\', \'change_string_from_woo_wait_list\',10,1 );
function change_string_from_woo_wait_list($text)
{
    $text = __( \'Custom Text\' ); // change text here
    return $text;
}
如果这对你有用,请告诉我!