Как удалить информацию об изменении из электронного письма с информацией о заказе клиента WooCommerce - PullRequest
0 голосов
/ 10 июля 2020

Я хотел бы удалить вариант отправки и способ доставки из электронного письма с описанием заказа клиента.

Я могу удалить отправку с помощью 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 ) );
        }
    }
}

пример изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...