Я хотел бы удалить вариант отправки и способ доставки из электронного письма с описанием заказа клиента.
Я могу удалить отправку с помощью 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. Но я не знаю, где применить фильтр.
Думаю, нам следует добавить сюда тест (if == 'From Ship'): class-w c -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 ) );
}
}
}
пример изображения