我不知道这里出了什么问题。首先,我想分享所有可能需要的信息。
插件树:
$ tree
.
├── classes
│ ├── database
│ │ ├── plugin-auth.php
│ │ ├── plugin-user.php
│ │ └── wp-user-x.php
│ ├── main
│ │ └── plugin.php
│ └── woocommerce
│ └── plugin-order.php
├── config.php
├── plugin.php
├── languages
│ ├── plugin-shop-en_US.mo
│ ├── plugin-shop-en_US.po
│ ├── plugin-shop-pl_PL.mo
│ └── plugin-shop-pl_PL.po
└── templates
└── register.php
plugin.php
包含文本域:
plugin-shop
.po
和.mo
文件是用Poedit生成的
插件包含与第一个插件执行的代码类似的代码:
class Plugin
{
const TEXT_DOMAIN = \'plugin-shop\';
public function initHooks()
{
add_action(\'plugins_loaded\', array($this, \'load_textdomain\'));
}
public function load_textdomain() {
load_plugin_textdomain( self::TEXT_DOMAIN, false, basename( dirname( __FILE__ ) ) . \'/languages\' );
}
...
}
classses/woocommerce/plugin-order.php
通过示例包含
function order_status_completed()
{
wp_mail( $to, __(\'Something bought\', $this->_textdomain ), $body, $headers );
}
Poedit成功索引了“购买的物品”
当我试图向用户发送有关此类操作的邮件时,就会出现问题。
add_action( \'woocommerce_order_status_completed\', array($this, \'order_status_completed\'), 10, 1 );
邮件已发送,但带有英文文本。
WordPress的语言环境设置为pl\\U pl-通过发送邮件主题进行测试locale()
后果为什么要发送原始文本顺便说一下。我想根据收到的用户区域设置发送带有文本的邮件get_user_locale()
方法如何应对