Ajouter une deuxième adresse e-mail à une commande terminée dans WooCommerce
-
-
J'ai déjà utiliségmail/google comme serveurs smtp,et ilmet enfaittous lese-mails dans le dossierenvoyé ... (pour ce que cela vaut dans votre cas)I have used gmail/google as smtp servers before, and it actually puts alle the emails in the sent folder... (for what it's worth in your case)
- 0
- 2013-03-23
- Ewout
-
2 réponses
- votes
-
- 2013-03-23
Ilexisteen fait unfiltre que vouspouvez utiliser,voir
abstract-wc-email.php
,ligne 214:return apply_filters( 'woocommerce_email_recipient_' . $this->id, $this->recipient, $this->object );
vouspouvezmettre ce qui suit dans votrefunctions.php:
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'your_email_recipient_filter_function', 10, 2); function your_email_recipient_filter_function($recipient, $object) { $recipient = $recipient . ', [email protected]'; return $recipient; }
le seulinconvénientest que le destinataire verra à lafois votre adresse & amp; le sien dans le champ À:.
Alternativement,en vous appuyant sur la réponse de Steve,vouspouvez utiliser lefiltre
woocommerce_email_headers
. l'objet $passé vouspermet de l'appliquer uniquement à l'email de commandeterminé:add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2); function mycustom_headers_filter_function( $headers, $object ) { if ($object == 'customer_completed_order') { $headers .= 'BCC: My name <[email protected]>' . "\r\n"; } return $headers; }
There's actually a filter that you can use, see
abstract-wc-email.php
, line 214:return apply_filters( 'woocommerce_email_recipient_' . $this->id, $this->recipient, $this->object );
you can put the following in your functions.php:
add_filter( 'woocommerce_email_recipient_customer_completed_order', 'your_email_recipient_filter_function', 10, 2); function your_email_recipient_filter_function($recipient, $object) { $recipient = $recipient . ', [email protected]'; return $recipient; }
the only drawback is that the recipient will see both your address & his own in the To: field.
Alternatively, building on Steve's answer, you can use the
woocommerce_email_headers
filter. the $object passed allows you to only apply this to the completed order email:add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2); function mycustom_headers_filter_function( $headers, $object ) { if ($object == 'customer_completed_order') { $headers .= 'BCC: My name <[email protected]>' . "\r\n"; } return $headers; }
-
Cela sembletrèsprometteur.Est-ce que votre suggestionest de créer unpluginpour cettefonctionnalité?This looks very promising. Is your suggestion to create a plugin for this functionality?
- 0
- 2013-03-23
- Halle
-
mettre àjour la réponse!update the answer!
- 0
- 2013-03-23
- Ewout
-
Celafonctionneparfaitement,mercibeaucoup.Cela allait vraiment au-delà des attentes.That works _perfectly_, thank you very much. This really went above and beyond.
- 0
- 2013-03-23
- Halle
-
Le code ci-dessous "Alternativement,en s'appuyant sur la réponse de Steve ..."ne semblepasfonctionner avec WC 2.3 ... Une suggestion?The code below "Alternatively, building on Steve's answer..." doesn't seem to work with WC 2.3... Any suggestion?
- 0
- 2015-07-22
- drake035
-
Aucun des codesne fonctionne sur WC 2.5.5,savez-vous s'ils ont changé lenom dufiltre?Merci!None of the codes are working on WC 2.5.5, do you know if they changed the name of the filter? Thanks!
- 0
- 2016-06-13
- Jaypee
-
Fonctionnetoujourspourmoi dans WC 2.5.5.Si celane fonctionnepaspour vous,c'estprobablement un conflit deplugin.Lefiltreesttoujours lemême: https://github.com/woothemes/woocommerce/blob/2.5.5/includes/emails/class-wc-email.php#L281Still works for me in WC 2.5.5. If it's not working for you it's probably a plugin conflict. Filter is still the same: https://github.com/woothemes/woocommerce/blob/2.5.5/includes/emails/class-wc-email.php#L281
- 0
- 2016-06-17
- Ewout
-
- 2013-09-28
Etil y a un autrefiltre qui vous donnera accès à la variable $ header quipeut vouspermettre de BCC vosemails afin que vous obteniez une copie carbone de chaqueemailenvoyé à vos clients sur Woocommerce. C'est aussi simple que le code ci-dessus,sauf que vos clientsne verrontpas votre adressee-mail.
Tout comme la solution ci-dessus,vous ajouteriez le code suivant:
add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2); function mycustom_headers_filter_function($headers, $object) { $headers = array(); $headers[] = 'Bcc: your name <[email protected]>'; $headers[] = 'Content-Type: text/html'; return $headers; }
Cefiltre s'applique àtous lesen-têtes $et également aux codesen dur dutypetext/html. Notez que vousn'incluezpas le '/r/n' dans la déclaration dutype de contenu - celapourraitprovoquer uneerreur dans wp_mail () - quiest ce que Woocommerce utilisepourenvoyer vosmessages.
J'utilise ce codepourpouvoir vérifier que Woocommerce v2.0.14. Doit égalementfonctionner dans les versions antérieures,maisje ne saispas depuis combien detemps lefiltre a étéinclus.
And there is another filter that will give you access to the $header variable which can allow you to BCC your emails so that you get a carbon copy of every email that goes to your clients on Woocommerce. This is just as easy as the code above except your clients will not see your email address.
Just like the solution above you would add the following code:
add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2); function mycustom_headers_filter_function($headers, $object) { $headers = array(); $headers[] = 'Bcc: your name <[email protected]>'; $headers[] = 'Content-Type: text/html'; return $headers; }
This filter applies to all $headers and also hard codes the type as text/html. Note that you do not include the '/r/n' in the content type declaration - this might cause an error in wp_mail() - which is what Woocommerce uses to send your messages.
I'm using this code so I can verify that Woocommerce v2.0.14. Should also work in earlier versions but not sure how long the filter has been included.
-
Pourquoine pas utiliser le/r/n?Jepense que cetteerreurne seproduit que lorsque vous ajoutez le/r/n dans letableau desen-têtes.Votreexemple écraseen fait leparamètre de contenu,que vouspouvez réutiliser.Why not use the /r/n? I think that error only comes up when you add the /r/n in the array of headers. Your example actually overwrites the content setting, which you can reuse.
- 0
- 2014-03-06
- Ewout
-
J'ai [répondu sur SO] (http://stackoverflow.com/a/26235007/383847) avec uneméthodepour ajouter uniquement BCC à dese-mails spécifiqueset pourmaintenir lesen-têtesexistants.I've [answered on SO](http://stackoverflow.com/a/26235007/383847) with a method to only add BCC to specific emails and to maintain the existing headers.
- 2
- 2014-10-07
- helgatheviking
Avant deposer cette question,je sais qu'il y a une hésitation (légitime) à répondre aux questionsici sur lesproduits Woo carils ont leurpropre supportet leurs utilisateurs devraient êtreencouragés à l'utiliser. Je suis un utilisateur Woopayantmaisje n'aipaspu résoudre ceproblème avec leur supportpayant,et ma question concerne le remplacement des classes dans WP,doncj'espère qu'il obtiendra une audition équitable.
Ma question: lorsqu'une-mail de commandeterminéestenvoyé à un client,j'ai égalementbesoin de recevoir cete-mail,textuellementet automatiquement,exactement commeilestenvoyé au clientplutôt que dans un autreformattel que créépar le diversplugins PDF defacturepour WooCommerce. Jepeuxtrèsfacilement accomplir celaen modifiant la ligne suivante dans
/woocommerce/classes/emails/class-wc-email-customer-completed-order.php
:à lire:
Cependant,ilest évident qu'untel hackne survivrapas à unemise àniveau. J'ai unthèmeenfant qui remplace lesmodèles WooCommerce. Existe-t-il unmécanisme équivalentpar lequelje peux remplacer une classe demanière similaireencapsulée? Oupouvez-vous recommander une approche alternative (enplus de configurer le serveur SMTPpour quetous lese-mails sortants soientenvoyés à la deuxième adresse)pour accomplirmatâche spécifique de réception de cete-mail lorsque le client le reçoit également?