Изменить По умолчанию wp_mail From, без влияния на формы тяжести

У меня есть вопрос об изменении отправителя по умолчанию. От имени / электронной почты по умолчанию уведомления wp_mail (например, ответ «Затерянный пароль»), но БЕЗ его испортить уведомления, передаваемые Gravity Forms.

Я нашел несколько потоков при изменении значения по умолчанию От имени / электронной почты, и именно это я и использовал. Он корректно работал, чтобы изменить отправителя по умолчанию из «Wordpress» и «wordpress@mydomain.com».

// Change default WP email sender add_filter('wp_mail_from', 'new_mail_from'); add_filter('wp_mail_from_name', 'new_mail_from_name'); function new_mail_from($old) { return 'site-admin@mydomain.com'; } function new_mail_from_name($old) { return 'Site Admin'; } 

Но это также привело к тому, что все формы передавались из Gravity Forms, так как это просто использует wp_mail для обработки заполненных форм. Положения формы «Гравитационные формы» ДОЛЖНЫ сохранять имя или адрес From, введенные пользователем при заполнении формы. Эта информация сохраняется в заголовке и передается в wp_mail для отправки.

  • Есть ли способ изменить функцию, чтобы она ТОЛЬКО влияла на любую почту, отправляемую по умолчанию (WordPress & wordpress@mydomain.com)? Может быть, какой-то поиск / замена?

Я также открыт для использования отправки SMTP, если это может помочь и быть более безопасным / надежным. К сожалению, я просто не владею PHP, чтобы писать эту функцию самостоятельно.

Solutions Collecting From Web of "Изменить По умолчанию wp_mail From, без влияния на формы тяжести"

Думаю, я нашел ответ на другом форуме, обсуждая использование Contact Form7 с той же проблемой, что и у меня.

Это то, что я получил от этой темы и попытался. Он, похоже, работает и, похоже, предназначен только для таргетинга электронной почты из имени / имени отправителя по умолчанию «Wordpress».

 // Change default WP email sender add_filter('wp_mail_from', 'doEmailFilter'); add_filter('wp_mail_from_name', 'doEmailNameFilter'); function doEmailFilter($email_address){ if($email_address === "wordpress@mydomain.com") return 'site-admin@mydomain.com'; else return $email_address; } function doEmailNameFilter($email_from){ if($email_from === "WordPress") return 'Site Admin'; else return $email_from; } 

Дайте мне знать, если есть лучший способ сделать это. Извините, если очевидно …

У меня была связанная проблема и закодирована плагин несколько недель назад. WP-HTML Mail теперь не поддерживает гравитационные формы, но если вы решите изменить свою форму на Ninja Forms, плагин идеально подходит для вас. Я добавил детекторов для плагинов, чтобы узнать, какой плагин просто отправил почту. Изменение форматирования и отправителя может быть включено / выключено для обнаруженных плагинов.

У меня есть плагин SMTP, который будет устанавливать адрес отправителя и имя отправителя по умолчанию, но все же разрешить плагины (например, Gravity Forms) переопределять эти значения.

https://wordpress.org/plugins/postman-smtp/

Сказав, что в зависимости от того, кто принадлежит вашим почтовым учетным записям, изменение адреса электронной почты отправителя на другое значение, чем то, что вы аутентифицируете, может помочь пометить ваш адрес электронной почты как спам. А именно Gmail, Hotmail и Yahoo Mail.