发送电子邮件内容前的快捷方式代码(_S)

时间:2018-11-03 作者:Renan A. Diaz

我在弄清楚如何执行插件的邮件内容选项中存储的短代码时遇到了一个小问题。

问题是,我的选项页面中有一个名为“\\u message”的字段,该字段与所见即所得编辑器配合使用,我想在那里保存短代码,然后在发送电子邮件之前执行它们。

有某种方法可以检测字符串中的短代码?。例如:

$message = \'blablabla [sale_products] blablaba\'; do_shortcode($message);

如果你对如何做到这一点有其他建议,那就太好了!

2 个回复
SO网友:Friss

你试过了吗

$message = apply_filters(\'the_content\', $your_data);
我认为这个过滤器可以处理短代码。(未测试)

SO网友:cjbj

虽然这不是很明显,do_shortcode 通常作为过滤器应用于生成特定文本的函数。例如,它被定义为the_content 像这样:

add_filter (\'the_content\',\'do_shortcode\');
所以,诀窍是将其定义为get_option 在插件中。如果您查看get_option 您将看到在最后一行应用了一个过滤器,其名称取决于选项的名称。假设存储消息的选项的名称为my_message 你会得到这样的结果:

add_filter (\'option_my_message\',\'do_shortcode\');
这应该意味着如果你$message = get_option(\'my_message\') 在你的插件中,你可以通过计算短代码得到它。

结束

相关推荐

覆盖WC_ShortCodes类中的静态方法(ShortCode)

我正在尝试覆盖product_categories 来自WooCommerce的短代码,以便我可以向包装器添加其他类[product_categories number=\"0\" parent=\"0\" class=\"container\"] 所以我看了一下WooCommerce code, 并创建了一个扩展WC_Shortcodes 我只是复制了静态方法product_categories /** * Updated product categories shortcod