PluginProbe
Request a Quote – Quote Forms for Any WordPress Site / 2.5.0
Request a Quote – Quote Forms for Any WordPress Site v2.5.0
trunk 1.0.0 1.5.0 1.6.0 1.7.0 1.8.0 1.9.0 1.9.1 1.9.5 1.9.6 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.1.0 2.2.0 2.3.0 2.3.1 2.3.10 2.3.11 2.3.2 2.3.3 2.3.4 All 39 releases
request-a-quote / request-a-quote.php

request-a-quote.php in Request a Quote – Quote Forms for Any WordPress Site 2.5.0, at request-a-quote.php

352 lines 12.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Plugin Name: Request a quote
4 * Plugin URI: https://emdplugins.com
5 * Description: Request a quote provides an easy to use request a quote form, stores and displays quote requests from customers.
6 * Version: 2.5.0
7 * Author: eMarketDesign
8 * Author URI: https://emdplugins.com
9 * Text Domain: request-a-quote
10 * Domain Path: /lang
11 * @package REQUEST_A_QUOTE
12 * @since WPAS 4.0
13 */
14 /*
15 * LICENSE:
16 * Request a quote is free software: you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License as published by
18 * the Free Software Foundation, either version 2 of the License, or
19 * any later version.
20 *
21 * Request a quote is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24 * GNU General Public License for more details.
25 *
26 * Please see <http://www.gnu.org/licenses/> for details.
27 */
28 if (!defined('ABSPATH')) exit;
29 if (!class_exists('Request_a_quote')):
30 /**
31 * Main class for Request a quote
32 *
33 * @class Request_a_quote
34 */
35 final class Request_a_quote {
36 /**
37 * @var Request_a_quote single instance of the class
38 */
39 private static $_instance;
40 public $app_name = 'request_a_quote';
41 public $session;
42 /**
43 * Main Request_a_quote Instance
44 *
45 * Ensures only one instance of Request_a_quote is loaded or can be loaded.
46 *
47 * @static
48 * @see REQUEST_A_QUOTE()
49 * @return Request_a_quote - Main instance
50 */
51 public static function instance() {
52 if (!isset(self::$_instance)) {
53 self::$_instance = new self();
54 self::$_instance->define_constants();
55 self::$_instance->includes();
56 self::$_instance->load_plugin_textdomain();
57 self::$_instance->session = new Emd_Session('request_a_quote');
58 add_filter('the_content', array(
59 self::$_instance,
60 'change_content'
61 ));
62 add_action('admin_menu', array(
63 self::$_instance,
64 'display_settings'
65 ));
66 add_filter('template_include', array(
67 self::$_instance,
68 'show_template'
69 ));
70 }
71 return self::$_instance;
72 }
73 /**
74 * Cloning is forbidden.
75 */
76 public function __clone() {
77 _doing_it_wrong(__FUNCTION__, __('Cheatin&#8217; huh?', 'request-a-quote') , '1.0');
78 }
79 /**
80 * Define Request_a_quote Constants
81 *
82 * @access private
83 * @return void
84 */
85 private function define_constants() {
86 define('REQUEST_A_QUOTE_VERSION', '2.5.0');
87 define('REQUEST_A_QUOTE_AUTHOR', 'eMarketDesign');
88 define('REQUEST_A_QUOTE_NAME', 'Request a quote');
89 define('REQUEST_A_QUOTE_PLUGIN_FILE', __FILE__);
90 define('REQUEST_A_QUOTE_PLUGIN_DIR', plugin_dir_path(__FILE__));
91 define('REQUEST_A_QUOTE_PLUGIN_URL', plugin_dir_url(__FILE__));
92 define('EMD_ADMIN_DIR', ABSPATH . 'wp-admin');
93 }
94 /**
95 * Include required files
96 *
97 * @access private
98 * @return void
99 */
100 private function includes() {
101 //these files are in all apps
102 if (!function_exists('emd_mb_meta')) {
103 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'assets/ext/emd-meta-box/emd-meta-box.php';
104 }
105 if (!function_exists('emd_translate_date_format')) {
106 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/date-functions.php';
107 }
108 if (!function_exists('emd_get_country_list')) {
109 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/country-functions.php';
110 }
111 if (!function_exists('emd_get_hidden_func')) {
112 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/common-functions.php';
113 }
114 if (!class_exists('Emd_Entity')) {
115 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/entities/class-emd-entity.php';
116 }
117 if (!function_exists('emd_get_template_part')) {
118 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/layout-functions.php';
119 }
120 //the rest
121 if (!class_exists('Emd_Notify_Email')) {
122 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/notify-actions.php';
123 }
124 if (!class_exists('Emd_Query')) {
125 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/class-emd-query.php';
126 }
127 if (!function_exists('emd_shc_get_layout_list')) {
128 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/shortcode-functions.php';
129 }
130 if (!class_exists('Emd_Session')) {
131 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/class-emd-session.php';
132 }
133 if (!function_exists('emd_show_login_register_forms')) {
134 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/login-register-functions.php';
135 }
136 do_action('emd_ext_include_files');
137 //app specific files
138 if (!function_exists('emd_show_settings_page')) {
139 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/settings-functions.php';
140 }
141 if (!function_exists('emd_misc_register_settings')) {
142 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/settings-functions-misc.php';
143 }
144 if (is_admin()) {
145 if (!class_exists('WP_List_Table', false)) {
146 require_once EMD_ADMIN_DIR . '/includes/class-wp-list-table.php';
147 }
148 if (!class_exists('Emd_List_Table')) {
149 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/class-emd-list-table.php';
150 }
151 if (!function_exists('emd_show_shortcodes_page')) {
152 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/shortcode-list-functions.php';
153 }
154 //these files are in all apps
155 if (!function_exists('emd_display_store')) {
156 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/store-functions.php';
157 }
158 //the rest
159 if (!function_exists('emd_shc_button')) {
160 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/wpas-btn-functions.php';
161 }
162 if (!class_exists('Emd_Notifications')) {
163 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/class-emd-notifications.php';
164 }
165 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/glossary.php';
166 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/admin/getting-started.php';
167 }
168 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/class-install-deactivate.php';
169 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/entities/class-emd-quote.php';
170 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/entities/emd-quote-shortcodes.php';
171 if (!function_exists('emd_show_forms_lite_page')) {
172 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/emd-form-builder-lite/emd-form-builder.php';
173 }
174 if (!function_exists('emd_lite_modal')) {
175 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/emd-lite/emd-lite.php';
176 }
177 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/scripts.php';
178 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/plugin-feedback-functions.php';
179 require_once REQUEST_A_QUOTE_PLUGIN_DIR . 'includes/content-functions.php';
180 }
181 /**
182 * Loads plugin language files
183 *
184 * @access public
185 * @return void
186 */
187 public function load_plugin_textdomain() {
188 $locale = apply_filters('plugin_locale', get_locale() , 'request-a-quote');
189 $mofile = sprintf('%1$s-%2$s.mo', 'request-a-quote', $locale);
190 $localmo = REQUEST_A_QUOTE_PLUGIN_DIR . '/lang/' . $mofile;
191 $globalmo = WP_LANG_DIR . '/request-a-quote/' . $mofile;
192 if (file_exists($globalmo)) {
193 load_textdomain('request-a-quote', $globalmo);
194 } elseif (file_exists($localmo)) {
195 load_textdomain('request-a-quote', $localmo);
196 } else {
197 load_plugin_textdomain('request-a-quote', false, REQUEST_A_QUOTE_PLUGIN_DIR . '/lang/');
198 }
199 }
200 /**
201 * Changes content on frontend views
202 *
203 * @access public
204 * @param string $content
205 *
206 * @return string $content
207 */
208 public function change_content($content) {
209 if (!is_admin()) {
210 if (post_password_required()) {
211 $content = get_the_password_form();
212 } else {
213 $mypost_type = get_post_type();
214 if ($mypost_type == 'post' || $mypost_type == 'page') {
215 $mypost_type = "emd_" . $mypost_type;
216 }
217 $ent_list = get_option($this->app_name . '_ent_list');
218 if (in_array($mypost_type, array_keys($ent_list)) && class_exists($mypost_type)) {
219 $func = "change_content";
220 $obj = new $mypost_type;
221 $content = $obj->$func($content);
222 }
223 }
224 }
225 return $content;
226 }
227 /**
228 * Creates plugin page in menu with submenus
229 *
230 * @access public
231 * @return void
232 */
233 public function display_settings() {
234 $settings_pages_cap = 'manage_options';
235 $settings_pages_cap = apply_filters('emd_settings_pages_cap', $settings_pages_cap, $this->app_name);
236 add_menu_page(__('Quotes Settings', 'request-a-quote') , __('Quotes Settings', 'request-a-quote') , $settings_pages_cap, $this->app_name, array(
237 $this,
238 'display_getting_started_page'
239 ));
240 add_submenu_page($this->app_name, __('Getting Started', 'request-a-quote') , __('Getting Started', 'request-a-quote') , $settings_pages_cap, $this->app_name);
241 add_submenu_page($this->app_name, __('Glossary', 'request-a-quote') , __('Glossary', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_glossary', array(
242 $this,
243 'display_glossary_page'
244 ));
245 add_submenu_page($this->app_name, __('Settings', 'request-a-quote') , __('Settings', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_settings', array(
246 $this,
247 'display_settings_page'
248 ));
249 add_submenu_page($this->app_name, __('Shortcodes', 'request-a-quote') , __('Shortcodes', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_shortcodes', array(
250 $this,
251 'display_shortcodes_page'
252 ));
253 add_submenu_page($this->app_name, __('Forms', 'request-a-quote') , __('Forms', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_forms', array(
254 $this,
255 'display_forms_page'
256 ));
257 add_submenu_page($this->app_name, __('Custom Fields', 'request-a-quote') , __('Custom Fields', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_cust_fields', array(
258 $this,
259 'display_cust_fields_page'
260 ));
261 add_submenu_page($this->app_name, __('Plugins', 'request-a-quote') , __('Plugins', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_store', array(
262 $this,
263 'display_store_page'
264 ));
265 add_submenu_page($this->app_name, __('Support', 'request-a-quote') , __('Support', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_support', array(
266 $this,
267 'display_support_page'
268 ));
269 add_submenu_page($this->app_name, __('Notifications', 'request-a-quote') , __('Notifications', 'request-a-quote') , $settings_pages_cap, $this->app_name . '_notify', array(
270 $this,
271 'display_notify_page'
272 ));
273 //add submenu page under app settings page
274 do_action('emd_ext_add_menu_pages', $this->app_name);
275 $emd_lic_settings = get_option('emd_license_settings', Array());
276 $show_lic_page = 0;
277 if (!empty($emd_lic_settings)) {
278 foreach ($emd_lic_settings as $key => $val) {
279 if ($key == $this->app_name) {
280 $show_lic_page = 1;
281 break;
282 } else if ($val['type'] == 'ext') {
283 $show_lic_page = 1;
284 break;
285 }
286 }
287 if ($show_lic_page == 1 && function_exists('emd_show_license_page')) {
288 add_submenu_page($this->app_name, __('Licenses', 'request-a-quote') , __('Licenses', 'request-a-quote') , 'manage_options', $this->app_name . '_licenses', array(
289 $this,
290 'display_licenses_page'
291 ));
292 }
293 }
294 }
295 /**
296 * Calls settings function to display glossary page
297 *
298 * @access public
299 * @return void
300 */
301 public function display_glossary_page() {
302 do_action($this->app_name . '_settings_glossary');
303 }
304 public function display_getting_started_page() {
305 do_action($this->app_name . '_getting_started');
306 }
307 public function display_store_page() {
308 emd_display_store($this->app_name);
309 }
310 public function display_support_page() {
311 emd_display_support($this->app_name, 2, 'request-a-quote');
312 }
313 public function display_licenses_page() {
314 do_action('emd_show_license_page', $this->app_name);
315 }
316 public function display_settings_page() {
317 do_action('emd_show_settings_page', $this->app_name);
318 }
319 public function display_shortcodes_page() {
320 do_action('emd_show_shortcodes_page', $this->app_name);
321 }
322 public function display_forms_page() {
323 do_action('emd_show_forms_lite_page', $this->app_name);
324 }
325 public function display_notify_page() {
326 $notify_init_list = get_option($this->app_name . '_notify_init_list');
327 do_action('emd_display_settings_notify', $this->app_name, $notify_init_list);
328 }
329 public function display_cust_fields_page() {
330 emd_lite_get_operations('cust_fields', __('Custom Fields', 'request-a-quote') , 'request_a_quote');
331 }
332 /**
333 * Displays single, archive, tax and no-access frontend views
334 *
335 * @access public
336 * @return string, $template:emd template or template
337 */
338 public function show_template($template) {
339 return emd_show_template($this->app_name, REQUEST_A_QUOTE_PLUGIN_DIR, $template);
340 }
341 }
342 endif;
343 /**
344 * Returns the main instance of Request_a_quote
345 *
346 * @return Request_a_quote
347 */
348 function REQUEST_A_QUOTE() {
349 return Request_a_quote::instance();
350 }
351 // Get the Request_a_quote instance
352 REQUEST_A_QUOTE();