web-dev-qa-db-fra.com

Modification des en-têtes de chaque détail dans woocommerce Order Email

J'utilise un thème flatsome, un plugin woocommerce. Sur ma page de remerciement, j’obtiens les coordonnées bancaires, les détails de la commande et les détails du client, etc., mais dans l’e-mail de commande client, les en-têtes de ces détails sont différents de ceux indiqués sur la page de remerciement. Est-il possible de modifier les titres d'en-tête des détails sur l'e-mail? J'ai déjà changé le titre de l'entête de order-details-customer.php et il est correctement reflété sur la page de remerciement mais PAS DANS LE COURRIEL.

Merci d'avance!

J'espère que quelqu'un peut vraiment m'aider! T-T

2
zhie

Pour modifier l'en-tête qui apparaît dans le corps (message) du modèle de courrier électronique, vous pouvez utiliser le filtre suivant: 'woocommerce_email_heading_' . $this->id$this->id équivaut à la propriété de classe id définie dans la classe de courrier électronique du type spécifié.

Par exemple, pour modifier l'en-tête du courrier électronique "Nouvelle commande", procédez comme suit:

function filter_heading_new_order($heading) {
    return 'My New Heading';
}

add_filter('woocommerce_email_heading_new_order', 'filter_heading_new_order');

Pour obtenir la propriété $this->id de chaque email, vous pouvez regarder les classes dans:

plugins/woocommerce/includes/emails

Pour élaborer davantage en fonction de vos commentaires, si vous souhaitez modifier certains éléments spécifiques dans le corps de l'e-mail (message), vous devez examiner certains des hoosk utilisés dans le fichier de modèle en question, car ces crochets sont utilisés pour injecter des données dans le modèle.

Par exemple, pour modifier la rubrique Détails du client:

function filter_custom_details_header($heading) {
    return 'My Customer Details Heading';
}

add_filter('woocommerce_email_custom_details_header', 'filter_custom_details_header');

Pour filtrer l'en-tête des coordonnées bancaires, communément appelée "Nos coordonnées bancaires", qui est raccordée à woocommerce_email_before_order_table et appelée à partir de la fonction de rappel email_instructions() dans class-wc-gateway-bacs.php, vous devez utiliser le filtre gettext car ils renvoient cette valeur sans fournir de filtre direct.

function filter_bank_details_headin($translated_text, $text, $domain) {

    if ( did_action('woocommerce_email_before_order_table') ) {

        switch ( $translated_text ) {

            case 'Our Bank Details' :

                $translated_text = __( 'My Bank Details Are...', 'woocommerce' );
                break;

        }

    }

    return $translated_text;
}

add_filter( 'gettext', 'filter_bank_details_heading', 20, 3 );
2
userabuser