WooCommerce:显示文本而不是原始复选框值电子邮件

时间:2016-08-26 作者:user9557

我已经成功地在签出时设置了一些自定义字段,一切正常。

我有一个复选框作为字段之一,my_gift_wrap_checkbox, 我成功地编写了代码来显示订单页面中的文本(“是的,请!”或“不,谢谢你”)而不是简单的blank1 是否检查。

我不知道如何在电子邮件代码中实现同样的效果。我的代码是:

/**
 * Add the field to order emails
 **/
add_filter(\'woocommerce_email_order_meta_keys\', \'my_woocommerce_email_order_meta_keys\');

function my_woocommerce_email_order_meta_keys( $keys ) {
    $keys[\'Gift wrap?\'] = \'my_gift_wrap_checkbox\';
    $keys[\'Gift wrap instructions\'] = \'my_gift_wrap_field\';
    return $keys;
}
现在:

如果是checked, 我明白了Gift wrap?: 1<我想要Gift wrap?: Yes please! not checked, 它显示Gift wrap?: <我想要Gift wrap?: No thank you.

1 个回复
最合适的回答,由SO网友:Nate Allen 整理而成

Try this instead:

add_action( "woocommerce_email_after_order_table", "my_woocommerce_email_after_order_table", 10, 1);

function my_woocommerce_email_after_order_table( $order ) {
    $my_gift_wrap_checkbox = get_post_meta( $order->id, "my_gift_wrap_checkbox", true );
    $gift_wrap = $my_gift_wrap_checkbox ? \'Yes please!\' : \'No thank you.\';

    echo \'<p><strong>Gift wrap?: </strong>\' . $gift_wrap . \'</p>\';

    if ( $my_gift_wrap_checkbox ) {
        echo \'<p><strong>Gift wrap instructions: </strong>\' . get_post_meta( $order->id, "my_gift_wrap_field", true ) . \'</p>\';
    }

}

相关推荐

如何将外部变量传递给wp_new_User_Notify_Email过滤器?

我们正在尝试自定义新用户在我们的网站上注册时收到的默认电子邮件。为此,我们使用WP4.9.0中添加的wp\\u new\\u user\\u notification\\u email筛选器对于我们的功能。php文件不要凌乱,我们在“templates/email\\u welcome.php”中有电子邮件模板。我们需要加载此文件来构建$message变量,但返回的内容始终为空。下面是我们在子主题函数中添加的内容。php// ========================================