问题描述
我正在尝试更改购买后发送给客户和管理员的 Woocommerce 邮件中显示的客户详细信息字段的顺序(表名:地址)。
我检查了负责输出帐单和运输字段的文件 plugins/woocommerce/templates/email-customer-details.PHP
,但客户详细信息仅通过 foreach 循环输出,变量 $fields
甚至不存在。
<?PHP foreach ( $fields as $field ) : ?>
<li><strong><?PHP echo wp_kses_post( $field['label'] ); ?>:</strong> <span class="text"><?PHP echo wp_kses_post( $field['value'] ); ?></span></li>
<?PHP endforeach; ?>
那么,在哪里更改字段的顺序?特别是,我想显示邮政编码之前的状态。
解决方法
有一个可用的过滤器钩子。
它包含在 WC_Emails
customer_details()
method 中,用于在所有相关的主要电子邮件模板上调用模板 email-customer-details.php
。
您可以这样使用它(其中 $fields
是您要排序的字段数组):
add_filter( 'woocommerce_email_customer_details_fields','filter_email_customer_details_fields',10,3 );
function filter_email_customer_details_fields( $fields,$sent_to_admin,$order ) {
// Do something
return $fields;
}