PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.8.2
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.8.2
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / classes / WpMatomo / Workarounds / FluentSmtp.php
matomo / classes / WpMatomo / Workarounds Last commit date
FluentSmtp 2 years ago FluentSmtp.php 2 years ago
FluentSmtp.php
61 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 * @package matomo
8 */
9
10 namespace WpMatomo\Workarounds;
11
12 use WpMatomo\Workarounds\FluentSmtp\PHPMailerProxy;
13
14 /**
15 * Workarounds for bugs in the Fluent SMTP WordPress plugin.
16 */
17 class FluentSmtp {
18
19 private $original_phpmailer = null;
20
21 private $was_phpmailer_replaced = false;
22
23 /**
24 * Worksaround this bug in Fluent SMTP: https://github.com/WPManageNinja/fluent-smtp/issues/180
25 * by creating a proxy to the global PHPMailer object that disables the addAttachment() method.
26 *
27 * Should be used in a phpmailer_init action after manually adding attachments to the original
28 * PHPMailer instance.
29 */
30 public function make_php_mailer_proxy( $phpmailer ) {
31 if ( ! is_plugin_active( 'fluent-smtp/fluent-smtp.php' ) ) {
32 return $phpmailer;
33 }
34
35 $this->was_phpmailer_replaced = true;
36 $this->original_phpmailer = $phpmailer;
37
38 return new PHPMailerProxy( $phpmailer );
39 }
40
41 /**
42 * FluentSMTP will check if the global phpmailer object's class is actually PHPMailer, and if not, abort
43 * so we need to make sure it doesn't see our wrapped proxy again.
44 */
45 public function reset_phpmailer() {
46 global $phpmailer;
47
48 if ( ! $this->was_phpmailer_replaced ) {
49 return;
50 }
51
52 if ( ! is_plugin_active( 'fluent-smtp/fluent-smtp.php' ) ) {
53 return;
54 }
55
56 // @codingStandardsIgnoreStart
57 $phpmailer = $this->original_phpmailer;
58 // @codingStandardsIgnoreEnd
59 }
60 }
61