我正在将wordpress中的一个短代码添加到woocommerce电子邮件模板中。
do_shortcode(\'[sample_test name="additional_gift_msg"]);
然后我用它在电子邮件中显示值。我能够显示值。
function th_email_shortcode_handler( $atts ) {
if ( ! empty( $atts[\'name\'] ) ) {
$field = $atts[\'name\'];
echo \'Found me\';
}
}
add_shortcode(\'sample_test\',\'th_email_shortcode_handler\');
但我需要
$order
或
$order_id
在这个处理函数中,从post meta中获取一些值。如何使用这些变量?短代码处理程序函数位于函数中。php
SO网友:ManzoorWani
WooCommerce电子邮件模板已经可以访问$order
变量您只需将其添加到短码ATT中,如下所示
do_shortcode(\'[sample_test name="additional_gift_msg" order_id=\' . $order->get_id() . \']\');
然后在短代码回调中:
function th_email_shortcode_handler( $atts ) {
// get the $order_id
$order_id = $atts[\'order_id\'];
// create the order object if needed
$order = new WC_Order( $order_id );
if ( ! empty( $atts[\'name\'] ) ) {
$field = $atts[\'name\'];
echo \'Found me\';
}
}