PluginProbe
Ever Compare – Products Compare Plugin for WooCommerce / 1.2.0
Ever Compare – Products Compare Plugin for WooCommerce v1.2.0
1.3.7 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 trunk 1.0.0 1.0.1 1.0.2 All 31 releases
ever-compare / ever-compare.php

ever-compare.php in Ever Compare – Products Compare Plugin for WooCommerce 1.2.0, at ever-compare.php

186 lines 4.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Ever Compare
4 * Description: WooCommerce Product compare plugin
5 * Plugin URI: https://hasthemes.com/plugins/
6 * Author: HasTheme
7 * Author URI: https://hasthemes.com/
8 * Version: 1.2.0
9 * License: GPL2 or later
10 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11 * Text Domain: ever-compare
12 * Domain Path: /languages
13 * WC tested up to: 6.5.1
14 */
15
16 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
17
18 /**
19 * Plugin Main Class
20 */
21 final class Ever_Compare{
22
23 /**
24 * Plugin version
25 *
26 * @var string
27 */
28 const version = '1.2.0';
29
30 /**
31 * [$_instance]
32 * @var null
33 */
34 private static $_instance = null;
35
36 /**
37 * [instance] Initializes a singleton instance
38 * @return [Base]
39 */
40 public static function instance() {
41 if ( is_null( self::$_instance ) ) {
42 self::$_instance = new self();
43 }
44 return self::$_instance;
45 }
46
47 /**
48 * [__construct] Class Constructor
49 */
50 private function __construct(){
51
52 $this->define_constants();
53 $this->includes();
54
55 register_activation_hook( EVERCOMPARE_FILE, [ $this, 'activate' ] );
56
57 add_action( 'init', [ $this, 'i18n' ] );
58 add_action( 'plugins_loaded', [ $this, 'init_plugin' ] );
59
60 }
61
62 /**
63 * Define the required plugin constants
64 *
65 * @return void
66 */
67 public function define_constants() {
68 define( 'EVERCOMPARE_VERSION', self::version );
69 define( 'EVERCOMPARE_FILE', __FILE__ );
70 define( 'EVERCOMPARE_PATH', __DIR__ );
71 define( 'EVERCOMPARE_DIR', plugin_dir_path( EVERCOMPARE_FILE ) );
72 define( 'EVERCOMPARE_URL', plugins_url( '', EVERCOMPARE_FILE ) );
73 define( 'EVERCOMPARE_ASSETS', EVERCOMPARE_URL . '/assets' );
74 define( 'EVERCOMPARE_BASE', plugin_basename( EVERCOMPARE_FILE ) );
75 }
76
77 /**
78 * [includes] Load file
79 * @return [void]
80 */
81 public function includes(){
82 require_once EVERCOMPARE_PATH . '/vendor/autoload.php';
83 if ( ! function_exists('is_plugin_active') ){ include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); }
84 }
85
86 /**
87 * [i18n] Load text domain
88 * @return [void]
89 */
90 public function i18n() {
91 load_plugin_textdomain( 'ever-compare', false, dirname( plugin_basename( EVERCOMPARE_FILE ) ) . '/languages/' );
92 }
93
94 /**
95 * Initialize the plugin
96 *
97 * @return void
98 */
99 public function init_plugin() {
100
101 EverCompare\Assets::instance();
102
103 if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
104 EverCompare\Ajax::instance();
105 }
106
107 if ( is_admin() ) {
108 $this->admin_notices();
109 EverCompare\Admin::instance();
110 }
111 EverCompare\Frontend::instance();
112
113 // add image size
114 $this->set_image_size();
115
116 // let's filter the woocommerce image size
117 add_filter( 'woocommerce_get_image_size_ever-compare-image', [ $this, 'wc_image_filter_size' ], 10, 1 );
118
119 }
120
121 /**
122 * Do stuff upon plugin activation
123 *
124 * @return void
125 */
126 public function activate() {
127 $installer = new EverCompare\Installer();
128 $installer->run();
129 }
130
131 /**
132 * Admin Notices
133 * @return void
134 */
135 public function admin_notices() {
136 $notice = new EverCompare\Admin\Notices();
137 $notice->notice();
138 }
139
140 /**
141 * [set_image_size] Set Image Size
142 */
143 public function set_image_size(){
144
145 $image_dimention = ever_compare_get_option( 'image_size', 'ever_compare_table_settings_tabs', array( 'width'=>300, 'height'=>300 ) );
146 if( isset( $image_dimention ) && is_array( $image_dimention ) ){
147 $hard_crop = !empty( ever_compare_get_option( 'hard_crop', 'ever_compare_table_settings_tabs' ) ) ? true : false;
148 add_image_size( 'ever-compare-image', $image_dimention['width'], $image_dimention['height'], $hard_crop );
149 }
150
151 }
152
153 /**
154 * [wc_image_filter_size]
155 * @return [array]
156 */
157 public function wc_image_filter_size(){
158
159 $image_dimention = ever_compare_get_option( 'image_size', 'ever_compare_table_settings_tabs', array('width'=>300,'height'=>300) );
160 $hard_crop = !empty( ever_compare_get_option( 'hard_crop', 'ever_compare_table_settings_tabs' ) ) ? true : false;
161
162 if( isset( $image_dimention ) && is_array( $image_dimention ) ){
163 return array(
164 'width' => isset( $image_dimention['width'] ) ? absint( $image_dimention['width'] ) : 300,
165 'height' => isset( $image_dimention['height'] ) ? absint( $image_dimention['height'] ) : 300,
166 'crop' => isset( $hard_crop ) ? 1 : 0,
167 );
168 }
169
170 }
171
172 }
173
174 /**
175 * Initializes the main plugin
176 *
177 * @return ever_compare
178 */
179 function ever_compare() {
180 if( ! class_exists('Woolentor_Ever_Compare') ){
181 return Ever_Compare::instance();
182 }
183 }
184
185 // Start Our journey
186 ever_compare();