| @@ -6,9 +6,9 @@ | ||
| 6 | 6 | final class Optml_Main { |
| 7 | 7 | /** |
| 8 | 8 | * Optml_Main The single instance of Starter_Plugin. |
| 9 | 9 | * |
| 10 | - * @var object | |
| 10 | + * @var Optml_Main|null | |
| 11 | 11 | * @access private |
| 12 | 12 | * @since 1.0.0 |
| 13 | 13 | */ |
| 14 | 14 | private static $_instance = null; |
| @@ -68,8 +68,16 @@ | ||
| 68 | 68 | */ |
| 69 | 69 | public $cli; |
| 70 | 70 | |
| 71 | 71 | /** |
| 72 | + * Holds the video player class. | |
| 73 | + * | |
| 74 | + * @access public | |
| 75 | + * @since 1.0.0 | |
| 76 | + * @var Optml_Video_Player Video player instance. | |
| 77 | + */ | |
| 78 | + public $video_player; | |
| 79 | + /** | |
| 72 | 80 | * Optml_Main constructor. |
| 73 | 81 | */ |
| 74 | 82 | public function __construct() { |
| 75 | 83 | register_activation_hook( OPTML_BASEFILE, [ $this, 'activate' ] ); |
| @@ -84,16 +92,22 @@ | ||
| 84 | 92 | * @return Optml_Main Plugin instance. |
| 85 | 93 | * @since 1.0.0 |
| 86 | 94 | */ |
| 87 | 95 | public static function instance() { |
| 96 | + $vendor_file = OPTML_PATH . 'vendor/autoload.php'; | |
| 97 | + if ( is_readable( $vendor_file ) ) { | |
| 98 | + include_once $vendor_file; | |
| 99 | + } | |
| 100 | + | |
| 88 | 101 | if ( null === self::$_instance ) { |
| 89 | 102 | add_filter( 'themeisle_sdk_products', [ __CLASS__, 'register_sdk' ] ); |
| 90 | - add_filter( 'themeisle_sdk_ran_promos', '__return_true' ); | |
| 103 | + add_filter( 'themeisle_sdk_ran_promos', [ __CLASS__, 'sdk_hide_promo_notice' ] ); | |
| 91 | 104 | add_filter( 'optimole-wp_uninstall_feedback_icon', [ __CLASS__, 'change_icon' ] ); |
| 92 | 105 | add_filter( 'optimole_wp_uninstall_feedback_after_css', [ __CLASS__, 'adds_uf_css' ] ); |
| 93 | 106 | add_filter( 'optimole_wp_feedback_review_message', [ __CLASS__, 'change_review_message' ] ); |
| 94 | 107 | add_filter( 'optimole_wp_logger_heading', [ __CLASS__, 'change_review_message' ] ); |
| 95 | 108 | add_filter( 'optml_register_conflicts', [ __CLASS__, 'register_conflicts' ] ); |
| 109 | + add_filter( 'optimole_wp_logger_data', [ __CLASS__, 'add_settings' ] ); | |
| 96 | 110 | self::$_instance = new self(); |
| 97 | 111 | self::$_instance->manager = Optml_Manager::instance(); |
| 98 | 112 | self::$_instance->rest = new Optml_Rest(); |
| 99 | 113 | self::$_instance->admin = new Optml_Admin(); |
| @@ -98,16 +112,13 @@ | ||
| 98 | 112 | self::$_instance->rest = new Optml_Rest(); |
| 99 | 113 | self::$_instance->admin = new Optml_Admin(); |
| 100 | 114 | self::$_instance->dam = new Optml_Dam(); |
| 101 | 115 | self::$_instance->media_offload = Optml_Media_Offload::instance(); |
| 116 | + self::$_instance->video_player = new Optml_Video_Player(); | |
| 102 | 117 | if ( class_exists( 'WP_CLI' ) ) { |
| 103 | 118 | self::$_instance->cli = new Optml_Cli(); |
| 104 | 119 | } |
| 105 | 120 | } |
| 106 | - $vendor_file = OPTML_PATH . 'vendor/autoload.php'; | |
| 107 | - if ( is_readable( $vendor_file ) ) { | |
| 108 | - include_once $vendor_file; | |
| 109 | - } | |
| 110 | 121 | |
| 111 | 122 | return self::$_instance; |
| 112 | 123 | } |
| 113 | 124 | |
| @@ -124,12 +135,15 @@ | ||
| 124 | 135 | $conflicts_to_register = array_merge( |
| 125 | 136 | $conflicts_to_register, |
| 126 | 137 | [ |
| 127 | 138 | 'Optml_Jetpack_Photon', |
| 128 | - 'Optml_Jetpack_Lazyload', | |
| 129 | 139 | 'Optml_Wprocket', |
| 130 | 140 | 'Optml_Divi', |
| 131 | 141 | 'Optml_w3_total_cache_cdn', |
| 142 | + 'Optml_Smush', | |
| 143 | + 'Optml_Litespeed', | |
| 144 | + 'Optml_Autoptimize', | |
| 145 | + 'Optml_Perfmatters', | |
| 132 | 146 | ] |
| 133 | 147 | ); |
| 134 | 148 | |
| 135 | 149 | return $conflicts_to_register; |
| @@ -135,8 +149,24 @@ | ||
| 135 | 149 | return $conflicts_to_register; |
| 136 | 150 | } |
| 137 | 151 | |
| 138 | 152 | /** |
| 153 | + * Add settings to the logger data. | |
| 154 | + * | |
| 155 | + * @param array $data Logger data. | |
| 156 | + * | |
| 157 | + * @return array | |
| 158 | + */ | |
| 159 | + public static function add_settings( $data ): array { | |
| 160 | + $data = is_array( $data ) ? $data : []; | |
| 161 | + | |
| 162 | + $saved_data = ( new Optml_Settings() )->get_raw_settings(); | |
| 163 | + unset( $saved_data['service_data'] ); | |
| 164 | + unset( $saved_data['api_key'] ); | |
| 165 | + | |
| 166 | + return array_merge( $data, $saved_data ); | |
| 167 | + } | |
| 168 | + /** | |
| 139 | 169 | * Change review message. |
| 140 | 170 | * |
| 141 | 171 | * @param string $message Old review message. |
| 142 | 172 | * |
| @@ -245,5 +275,19 @@ | ||
| 245 | 275 | public function __wakeup() { |
| 246 | 276 | _doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'optimole-wp' ), '1.0.0' ); |
| 247 | 277 | } |
| 248 | 278 | |
| 279 | + /** | |
| 280 | + * Hide SDK promo notice for pro uses. | |
| 281 | + * | |
| 282 | + * @access public | |
| 283 | + */ | |
| 284 | + public static function sdk_hide_promo_notice( $should_show ) { | |
| 285 | + if ( self::$_instance->admin->settings->is_connected() ) { | |
| 286 | + $service_data = self::$_instance->admin->settings->get( 'service_data' ); | |
| 287 | + if ( isset( $service_data['plan'] ) && 'free' !== $service_data['plan'] ) { | |
| 288 | + return true; | |
| 289 | + } | |
| 290 | + } | |
| 291 | + return $should_show; | |
| 292 | + } | |
| 249 | 293 | } |