PluginProbe
YayMail – WooCommerce Email Customizer / 4.3.3
YayMail – WooCommerce Email Customizer v4.3.3
4.4.4 4.4.3 4.4.2 4.4.1 trunk 1.9.6 2.1.4 2.1.5 3.2.2 3.2.6 3.2.7.1 3.2.8.1 3.2.9 3.3 3.3.1 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.3.9 3.4 3.4.1 3.4.2 3.4.3 All 55 releases
← All changes | yaymail.php +93 -62 3.2.24.3.3 View file →
@@ -2,108 +2,139 @@
2 2 /**
3 3 * Plugin Name: YayMail - WooCommerce Email Customizer
4 4 * Plugin URI: https://yaycommerce.com/yaymail-woocommerce-email-customizer/
5 5 * Description: Create awesome transactional emails with a drag and drop email builder
6 - * Version: 3.2.2
6 + * Version: 4.3.3
7 7 * Author: YayCommerce
8 8 * Author URI: https://yaycommerce.com
9 9 * Text Domain: yaymail
10 10 * WC requires at least: 3.0.0
11 - * WC tested up to: 7.3.0
11 + * WC tested up to: 10.5.1
12 12 * Domain Path: /i18n/languages/
13 + *
14 + * @package YayMail
13 15 */
14 16
15 17 namespace YayMail;
16 18
17 -use YayMail\License\LicenseHandler;
18 -
19 19 defined( 'ABSPATH' ) || exit;
20 20
21 -if ( function_exists( 'YayMail\\init' ) ) {
22 - require_once plugin_dir_path( __FILE__ ) . 'includes/Fallback.php';
23 - add_action(
24 - 'admin_init',
25 - function() {
26 - deactivate_plugins( plugin_basename( __FILE__ ) );
27 - }
28 - );
29 - return;
30 -}
31 -
32 21 if ( ! defined( 'YAYMAIL_PREFIX' ) ) {
33 - define( 'YAYMAIL_PREFIX', 'yaymail' );
22 + define( 'YAYMAIL_PREFIX', 'yaymail' );
34 23 }
35 24
36 25 if ( ! defined( 'YAYMAIL_DEBUG' ) ) {
37 - define( 'YAYMAIL_DEBUG', false );
26 + define( 'YAYMAIL_DEBUG', false );
38 27 }
39 28
40 29 if ( ! defined( 'YAYMAIL_VERSION' ) ) {
41 - define( 'YAYMAIL_VERSION', '3.2.2' );
30 + define( 'YAYMAIL_VERSION', '4.3.3' );
42 31 }
43 32
44 33 if ( ! defined( 'YAYMAIL_PLUGIN_URL' ) ) {
45 - define( 'YAYMAIL_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
34 + define( 'YAYMAIL_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
46 35 }
47 36
48 37 if ( ! defined( 'YAYMAIL_PLUGIN_PATH' ) ) {
49 - define( 'YAYMAIL_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
38 + define( 'YAYMAIL_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
50 39 }
51 40
52 41 if ( ! defined( 'YAYMAIL_PLUGIN_BASENAME' ) ) {
53 - define( 'YAYMAIL_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
42 + define( 'YAYMAIL_PLUGIN_BASENAME', plugin_basename( __FILE__ ) );
54 43 }
55 44
56 -spl_autoload_register(
57 - function ( $class ) {
58 - $prefix = __NAMESPACE__;
59 - $base_dir = __DIR__ . '/includes';
45 +if ( ! defined( 'YAYMAIL_IS_DEVELOPMENT' ) ) {
46 + define( 'YAYMAIL_IS_DEVELOPMENT', false );
47 +}
60 48
61 - $len = strlen( $prefix );
62 - if ( strncmp( $prefix, $class, $len ) !== 0 ) {
63 - return;
64 - }
49 +if ( ! defined( 'YAYMAIL_REST_NAMESPACE' ) ) {
50 + define( 'YAYMAIL_REST_NAMESPACE', 'yaymail/v1' );
51 +}
65 52
66 - $relative_class_name = substr( $class, $len );
53 +$yaymail_has_required_deps = true;
54 +if ( function_exists( 'YayMail\\init' ) ) {
55 + require_once plugin_dir_path( __FILE__ ) . 'templates/fallbacks/fallback-exists.php';
56 + $yaymail_has_required_deps = false;
57 +}
67 58
68 - $file = $base_dir . str_replace( '\\', '/', $relative_class_name ) . '.php';
59 +if ( version_compare( PHP_VERSION, '7.2', '<' ) ) {
60 + require_once plugin_dir_path( __FILE__ ) . 'templates/fallbacks/fallback-minimum-php.php';
61 + $yaymail_has_required_deps = false;
62 +}
69 63
70 - if ( file_exists( $file ) ) {
71 - require $file;
72 - }
73 - }
74 -);
64 +if ( version_compare( $GLOBALS['wp_version'], '5.2', '<' ) ) {
65 + require_once plugin_dir_path( __FILE__ ) . 'templates/fallbacks/fallback-minimum-wp.php';
66 + $yaymail_has_required_deps = false;
67 +}
75 68
69 +if ( ! $yaymail_has_required_deps ) {
70 + add_action(
71 + 'admin_init',
72 + function() {
73 + deactivate_plugins( plugin_basename( __FILE__ ) );
74 + }
75 + );
76 +
77 + // Return early to prevent loading the plugin.
78 + return;
79 +}
80 +
81 +require_once YAYMAIL_PLUGIN_PATH . 'vendor/autoload.php';
82 +
83 +/**
84 + * Initialize constants
85 + */
86 +Constants\ConstantsHandler::get_instance();
87 +
76 88 if ( ! function_exists( 'install_yaymail_admin_notice' ) ) {
77 - function install_yaymail_admin_notice() {
78 - ?>
79 - <div class="error">
80 - <p>
81 - <?php
82 - // translators: %s: search WooCommerce plugin link
83 - printf( 'YayMail ' . esc_html__( 'is enabled but not effective. It requires %1$sWooCommerce%2$s in order to work.', 'yaymail' ), '<a href="' . esc_url( admin_url( 'plugin-install.php?s=woocommerce&tab=search&type=term' ) ) . '">', '</a>' );
84 - ?>
85 - </p>
86 - </div>
87 - <?php
88 - }
89 + function install_yaymail_admin_notice() {
90 + ?>
91 + <div class="error">
92 + <p>
93 + <?php
94 + // translators: %s: search WooCommerce plugin link
95 + printf( 'YayMail ' . esc_html__( 'is enabled but not effective. It requires %1$sWooCommerce%2$s in order to work.', 'yaymail' ), '<a href="' . esc_url( admin_url( 'plugin-install.php?s=woocommerce&tab=search&type=term' ) ) . '">', '</a>' );
96 + ?>
97 + </p>
98 + </div>
99 + <?php
100 + }
89 101 }
90 102
91 103 if ( ! function_exists( 'YayMail\\init' ) ) {
92 - function init() {
93 - if ( ! function_exists( 'WC' ) ) {
94 - add_action( 'admin_notices', 'YayMail\\install_yaymail_admin_notice' );
95 - }
96 - $LicenseHandler = LicenseHandler::get_instance();
104 + function init() {
105 + \YayMail\YayCommerceMenu\RegisterMenu::get_instance();
106 + \YayMail\License\LicenseHandler::get_instance();
107 + if ( ! function_exists( 'WC' ) ) {
108 + add_action( 'admin_notices', 'YayMail\\install_yaymail_admin_notice' );
109 + } else {
110 + add_action( 'before_woocommerce_init', 'YayMail\\yaymail_enable_compatible_hpos' );
111 + do_action( 'yaymail_before_init' );
97 112
98 - Plugin::getInstance();
99 - I18n::getInstance();
100 - Page\Settings::getInstance();
101 - MailBuilder\WooTemplate::getInstance();
102 - MailBuilder\YaymailElement::getInstance();
103 - }
113 + \YayMail\Initialize::get_instance();
114 + }//end if
115 + }
116 +}//end if
117 +
118 +if ( ! function_exists( 'yaymail_enable_compatible_hpos' ) ) {
119 + function yaymail_enable_compatible_hpos() {
120 + if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
121 + \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
122 +
123 + // Set compatible for addon
124 + $plugins = get_plugins();
125 + foreach ( array_keys( $plugins ) as $key ) {
126 + $is_yaymail_addon = strpos( $key, 'yaymail-addon' ) !== false || strpos( $key, 'email-customizer' ) !== false;
127 + if ( $is_yaymail_addon ) {
128 + \Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', $key, true );
129 + }
130 + }
131 + }
132 + }
104 133 }
105 134
106 -add_action( 'plugins_loaded', 'YayMail\\init' );
135 +if ( ! wp_installing() ) {
136 + add_action( 'plugins_loaded', 'YayMail\\init' );
137 +}
107 138
108 -register_activation_hook( __FILE__, array( 'YayMail\\Plugin', 'activate' ) );
109 -register_deactivation_hook( __FILE__, array( 'YayMail\\Plugin', 'deactivate' ) );
139 +register_activation_hook( __FILE__, [ \YayMail\Engine\ActDeact::class, 'activate' ] );
140 +register_deactivation_hook( __FILE__, [ \YayMail\Engine\ActDeact::class, 'deactivate' ] );