我想从客户订单详细信息电子邮件中删除变式发货和发货方式。
我可以使用JavaScript删除发件人,但结帐后只能在订单详细信息页面中隐藏属性。
//remove Ship from Order
var OrderShipF = document.getElementsByClassName("wc-item-meta")[0];
var OrderShipFF= OrderShipF.getElementsByTagName("li");
for (var i=0;i<OrderShipFF.length;i++){
OrderShipFFF= OrderShipFF[i].getElementsByClassName("wc-item-meta-label")[0].innerHTML;
if (OrderShipFFF=="Ships From:"){
OrderShipFF[i].style.display = "none";
}
}
如何从客户电子邮件中删除元数据,标题为woocommerce_email_customer_details的过滤器可用于编辑此数据。但是我不知道在哪里应用过滤器。
我认为我们应该在此处添加测试(如果=='From Ship'):class-wc-emails.php
if ( $plain_text ) {
foreach ( $fields as $field ) {
if ( isset( $field['label'] ) && isset( $field['value'] ) && $field['value'] ) {
echo $field['label'] . ': ' . $field['value'] . "\n"; // WPCS: XSS ok.
}
}
}
/**
* Add order meta to email templates.
*
* @param WC_Order $order Order instance.
* @param bool $sent_to_admin If should sent to admin.
* @param bool $plain_text If is plain text email.
*/
public function order_meta( $order, $sent_to_admin = false, $plain_text = false ) {
$fields = apply_filters( 'woocommerce_email_order_meta_fields', array(), $sent_to_admin, $order );
/**
* Deprecated woocommerce_email_order_meta_keys filter.
*
* @since 2.3.0
*/
$_fields = apply_filters( 'woocommerce_email_order_meta_keys', array(), $sent_to_admin );
if ( $_fields ) {
foreach ( $_fields as $key => $field ) {
if ( is_numeric( $key ) ) {
$key = $field;
}
$fields[ $key ] = array(
'label' => wptexturize( $key ),
'value' => wptexturize( get_post_meta( $order->get_id(), $field, true ) ),
);
}
}
if ( $fields ) {
if ( $plain_text ) {
foreach ( $fields as $field ) {
if ( isset( $field['label'] ) && isset( $field['value'] ) && $field['value'] ) {
echo $field['label'] . ': ' . $field['value'] . "\n"; // WPCS: XSS ok.
}
}
} else {
foreach ( $fields as $field ) {
if ( isset( $field['label'] ) && isset( $field['value'] ) && $field['value'] ) {
echo '<p><strong>' . $field['label'] . ':</strong> ' . $field['value'] . '</p>'; // WPCS: XSS ok.
}
}
}
}
}
/**
* Is customer detail field valid?
*
* @param array $field Field data to check if is valid.
* @return boolean
*/
public function customer_detail_field_is_valid( $field ) {
return isset( $field['label'] ) && ! empty( $field['value'] );
}
/**
* Allows developers to add additional customer details to templates.
*
* In versions prior to 3.2 this was used for notes, phone and email but this data has moved.
*
* @param WC_Order $order Order instance.
* @param bool $sent_to_admin If should sent to admin.
* @param bool $plain_text If is plain text email.
*/
public function customer_details( $order, $sent_to_admin = false, $plain_text = false ) {
if ( ! is_a( $order, 'WC_Order' ) ) {
return;
}
$fields = array_filter( apply_filters( 'woocommerce_email_customer_details_fields', array(), $sent_to_admin, $order ), array( $this, 'customer_detail_field_is_valid' ) );
if ( ! empty( $fields ) ) {
if ( $plain_text ) {
wc_get_template( 'emails/plain/email-customer-details.php', array( 'fields' => $fields ) );
} else {
wc_get_template( 'emails/email-customer-details.php', array( 'fields' => $fields ) );
}
}
}