define_constants(); $this->includes(); $this->init_hooks(); $this->api = new fielddayApi(); $this->engine = new fielddayCore(); $cookieoffset = $this->engine->getCookieStorage('offset', false); if ($cookieoffset) { $fielddaySetting['offset'] = $cookieoffset; } else { $fielddaySetting['offset'] = 300; } /*$cookievisitbefore = $this->engine->getCookieStorage('visitbefore', false); if ($cookievisitbefore) { echo "visitedbefore"; echo $fielddaySetting['visitbefore'] = $cookievisitbefore; } else { echo "notvisitedbefore"; $fielddaySetting['visitbefore'] = ''; }*/ $fielddaySetting['siteName'] = get_bloginfo(); if (!$this->engine->getValue('global_popup_key', $fielddaySetting, false)) { $randomnumber = "field_day_" . rand(1, 9999); $fielddaySetting['global_popup_key'] = $randomnumber; } //$fielddaySetting['global_popup_key'] = "_global_discount_check23222"; $this->suffix = (defined('WP_DEBUG') && true === WP_DEBUG) ? "" : '.min'; } /** * Hook into actions and filters. * * @since 1.0.0 */ private function init_hooks() { register_activation_hook(fieldday_PLUGIN_FILE, array($this, 'fieldday_plugin_install')); add_action('init', array($this, 'init'), 0); add_action('after_setup_theme', [$this, 'remove_admin_bar']); /* register front end scripts */ add_action('wp_enqueue_scripts', array($this, 'fielddayScripts'), 0); /* register admin scripts */ add_action('admin_enqueue_scripts', array($this, 'fielddayAdminScripts'), 0); /* add popup messages in footer */ add_action('wp_footer', [$this, 'KmAlertMessages']); add_action('wp_footer', [$this, 'KmStickyWidget']); /* add script in header section */ add_action('wp_head', [$this, 'fielddayHead']); /* add fieldday user into menu selected */ add_filter('wp_nav_menu_items', [$this, 'fielddayUserInMenu'], 999, 2); /* add cart icon into menu selected */ //add_filter('wp_nav_menu_items', [$this, 'fielddayCartInMenu'], 999, 2); } public function fielddayHead() { global $fielddaySetting; $this->engine->getValue('fieldday_header_Script', $fielddaySetting); $kmPrimaryColor = $this->engine->getValue('primary_color', $fielddaySetting, false); $kmSecondaryColor = $this->engine->getValue('secondary_color', $fielddaySetting, false); $kmHighlightColor = $this->engine->getValue('highlightcolor', $fielddaySetting, false); $fieldday_bullets = $this->engine->getValue('fieldday_bullets', $fielddaySetting, false); print ""; } /** * user HTML in menu * @global Array $fielddaySetting * @param String $items * @param mixed $args * @return String menu Html */ public function fielddayUserInMenu($items, $args) { global $fielddaySetting; $selectedMenu = $this->engine->getValue('user_menu', $fielddaySetting, false); $selectedCartMenu = $this->engine->getValue('cart_menu', $fielddaySetting, false); if (isset($args->menu->term_id)) { if ($selectedCartMenu == 'mainmenu') { $items .= $this->engine->GetCartView(); } if ($selectedMenu == $args->menu->term_id) { $items .= $this->engine->UserInMenuHtml(); } return $items; } else { $menu = wp_get_nav_menu_object($args->menu); if ($selectedCartMenu == 'mainmenu') { $items .= $this->engine->GetCartView(); } if ($selectedMenu == $menu->term_id) { $items .= $this->engine->UserInMenuHtml(); } return $items; } } /* * fieldday instalation hook */ public function fieldday_plugin_install() { } /** * Init plugin when WordPress Initialises. */ public function init() { global $KmUser; $KmUser = $this->getKmUser(); $this->BlockfielddayDashboard(); if (!session_id()) { session_start(); } add_role( fieldday_ROLE, __('fieldday User'), array( 'read' => true, // true allows this capability ) ); } /** * Define fieldday Constants. */ private function define_constants() { $this->define('fieldday_ABSPATH', dirname(fieldday_PLUGIN_FILE) . '/'); $this->define('fieldday_BASENAME', plugin_basename(fieldday_PLUGIN_FILE)); $this->define('fieldday_URL', plugins_url(basename(fieldday_ABSPATH))); $this->define('fieldday_VERSION', $this->version); $this->define('fieldday_PLACEHOLDER', fieldday_URL . '/assets/img/placeholder.png'); $this->define('fieldday_CURRENCY', '$'); $this->define('fieldday_ROLE', 'km_user'); } /** * Include required core files used in admin and on the frontend. */ public function includes() { global $fielddaySetting; $activetheme = array_key_exists('fieldday_theme_mode', $fielddaySetting) ? $fielddaySetting['fieldday_theme_mode'] : null; include_once fieldday_ABSPATH . '/inc/ClassFielddayBase.php'; include_once fieldday_ABSPATH . '/inc/ClassFielddayhubCore.php'; include_once fieldday_ABSPATH . '/lib/FielddayApi/FielddayApi.php'; include_once fieldday_ABSPATH . '/inc/ClassShortcodes.php'; include_once fieldday_ABSPATH . '/inc/ClassActions.php'; include_once fieldday_ABSPATH . '/inc/widgets/classWidgets.php'; /*active theme fucntion file*/ if($activetheme && file_exists(fieldday_ABSPATH . "/views/theme/{$activetheme}/functions.php")) { include_once fieldday_ABSPATH . "/views/theme/{$activetheme}/functions.php"; } /* add admin files */ /* add admin files */ if (is_admin()) { include_once fieldday_ABSPATH . '/inc/ClassAdminOptions.php'; } } /** * get fieldday Current loggedin user * * @return boolean */ public function getKmUser() { $km_user = wp_get_current_user(); if ($km_user) { $meta = get_user_meta($km_user->ID, 'km_user_data', true); if ($meta) { $KmUser = $this->api->getUser($meta->_id, $meta->accessToken); if ($KmUser->statusCode === 200) { $KmUser->data->accessToken = $meta->accessToken; return $KmUser->data; } } } return false; } /* * add some alert messages in wordpress footer */ public function KmAlertMessages() { global $fielddaySetting; $cookieCheck = $this->engine->getCookieStorage($fielddaySetting['global_popup_key'], false); $isenabled = $this->engine->getValue('fieldday_global_popup', $fielddaySetting, false); $isPopupEnablePage = $this->engine->getValue('fieldday_globalpopup_page', $fielddaySetting, false); $pageID = get_the_ID(); if ($isenabled == 'enabled' && !$cookieCheck) { if ($isPopupEnablePage == $pageID || $isPopupEnablePage == 'all') { echo $this->engine->getView('global_popup'); } } global $fielddaySetting; $this->engine->getValue('fieldday_footer_Script', $fielddaySetting); echo $this->engine->getView('fieldday_alerts'); } /* * add some alert messages in wordpress footer */ public function KmStickyWidget(){ global $fielddaySetting; $isenabled = $this->engine->getValue('fieldday_sticky_widget', $fielddaySetting, false); $StickyOption = $this->engine->getValue('fieldday_sticky_option', $fielddaySetting, false); if ($isenabled == 'enable') { echo '

Have questions?

Contact Us Now
'; } } /** * register and enque front end styles and scripts. * * @since 1.0.0 */ public function fielddayScripts() { global $post; global $fielddaySetting; $activetheme = $this->engine->getvalue('fieldday_theme_mode', $fielddaySetting, false); wp_register_script('intl-tel-input', fieldday_URL . '/assets/js/intlTelInput.js', [], fieldday_VERSION); wp_register_script('cleave', fieldday_URL . '/assets/js/cleave.min.js', array(), fieldday_VERSION); wp_register_script('cleave-phone.us', fieldday_URL . '/assets/js/cleave-phone.i18n.js', array(), fieldday_VERSION); wp_register_script('parsley', fieldday_URL . '/assets/js/parsley.min.js', array(), fieldday_VERSION); wp_register_script('serializejson', fieldday_URL . '/assets/js/jquery.serializejson.js', array(), fieldday_VERSION); wp_register_script('select2', fieldday_URL . '/assets/js/select2.min.js', array('jquery'), fieldday_VERSION, true); wp_register_script('km_slider', fieldday_URL . '/assets/js/slick.min.js', array('jquery'), fieldday_VERSION, true); wp_register_script('km_daterangepicker', fieldday_URL . '/assets/js/daterangepicker.min.js', array('jquery'), fieldday_VERSION, true); wp_register_script('km_multidatespicker',fieldday_URL.'/assets/js/jquery-ui.multidatespicker.js',array('jquery'),fieldday_VERSION, true); wp_register_script('km_fullcalendar', fieldday_URL . '/assets/js/fullcalendar.min.js', array('jquery'), fieldday_VERSION, true); $themeJsFile = fieldday_ABSPATH . "/views/theme/{$activetheme}/assets/js/scripts.js"; if (file_exists($themeJsFile)) { wp_enqueue_script('km_theme_js_custom', fieldday_URL . "/views/theme/{$activetheme}/assets/js/scripts.js", array('jquery'), fieldday_VERSION); } wp_enqueue_script('fieldday_script', fieldday_URL . "/assets/js/fieldday{$this->suffix}.js", array('jquery', 'moment', 'intl-tel-input', 'cleave', 'cleave-phone.us', 'parsley', 'serializejson', 'select2', 'km_slider', 'km_daterangepicker', 'km_fullcalendar', 'km_theme_js_custom'), fieldday_VERSION); wp_enqueue_script('google-api', '//www.google.com/recaptcha/api.js?h1=en&', array(), fieldday_VERSION); wp_enqueue_script('google-polyfill-fixed', '//polyfill.io/v3/polyfill.js?features=Symbol%2CObject.getOwnPropertySymbols%2CSymbol.asyncIterator%2CSymbol.for%2CSymbol.hasInstance%2CSymbol.isConcatSpreadable%2CSymbol.iterator%2CSymbol.keyFor%2CSymbol.match%2CSymbol.replace%2CSymbol.prototype.description%2CSymbol.search%2CSymbol.species%2CSymbol.split%2CSymbol.toPrimitive%2CSymbol.toStringTag%2CSymbol.unscopables ', array(), fieldday_VERSION); $googlemapapi = $this->engine->getvalue('fieldday_googlemapapi_mode', $fielddaySetting, false); wp_enqueue_script('google-map-api', "//maps.googleapis.com/maps/api/js?key={$googlemapapi}&libraries=places", array(), fieldday_VERSION); /* if(!$this->engine->isKmLogin() ){ wp_enqueue_script('google-map-api', "//maps.googleapis.com/maps/api/js?key={$googlemapapi}&libraries=places&sensor=false", array(), fieldday_VERSION); } */ wp_enqueue_script('stripe', 'https://js.stripe.com/v2/'); wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_script('km_multidatespicker'); wp_register_style('km_fontawesome', fieldday_URL . '/assets/css/fontawesome.full.min.css'); wp_register_style('intl-tel-input', fieldday_URL . '/assets/css/intlTelInput.css', [], fieldday_VERSION); wp_register_style('jquery-ui', fieldday_URL . '/assets/css/jquery-ui.css'); wp_register_style('select2css', fieldday_URL . '/assets/css/select2.min.css', false, fieldday_VERSION); wp_register_style('km_slider', fieldday_URL . '/assets/css/slick.min.css', false, fieldday_VERSION); wp_register_style('km_slider_theme', fieldday_URL . '/assets/css/slick-theme.css', false, fieldday_VERSION); wp_register_style('km_daterangepicker_theme', fieldday_URL . '/assets/css/daterangepicker.css', false, fieldday_VERSION); wp_register_style('km_multidatespicker_theme', fieldday_URL . '/assets/css/jquery-ui.multidatespicker.css', false, fieldday_VERSION); wp_register_style('km_fullcalendar_theme', fieldday_URL . '/assets/css/fullcalendar.min.css', false, fieldday_VERSION); $themeCssFile = fieldday_ABSPATH . "/views/theme/{$activetheme}/assets/css/style.css"; if (file_exists($themeCssFile)) { wp_register_style('km_theme_css_custom', fieldday_URL . "/views/theme/{$activetheme}/assets/css/style.css", false, fieldday_VERSION); } wp_enqueue_style('fieldday_style', fieldday_URL . "/assets/css/fieldday{$this->suffix}.css", array('intl-tel-input', 'km_fontawesome', 'jquery-ui', 'select2css', 'km_slider', 'km_slider_theme', 'km_theme_css_custom', 'km_daterangepicker_theme', 'km_fullcalendar_theme'), fieldday_VERSION); wp_localize_script('fieldday_script', 'fieldday_ajax', array( 'ajax_url' => admin_url('admin-ajax.php'), "permalink" => get_permalink($post->ID), '_wpnonce' => wp_create_nonce('km_nonce_' . $post->ID), 'isKmUser' => $this->engine->isKmLogin(), 'fieldday_stripe_token' => $this->engine->getStripeToken(), 'add_to_cart_btn' => $this->engine->displayText('add_to_cart_btn', false), 'atc_next_btn' => $this->engine->displayText('atc_next_btn', false), 'atc_prev_btn' => $this->engine->displayText('atc_prev_btn', false), 'invalid_form_message' => $this->engine->displayText('invalid_form_message', false), 'delteConfirm' => $this->engine->displayText('delete_confirm_text', false), 'map_header_text' => $this->engine->displayText('map_header_text', false), 'map_footer_button_text' => $this->engine->displayText('map_footer_button_text', false), 'g_sitekey' => $this->engine->getvalue('fieldday_google_recaptcha_id', $fielddaySetting, false), 'confirm_pop_text' => $this->engine->displayText('confirm_pop_text', false), 'global_popup_key' => $fielddaySetting['global_popup_key'] ) ); } public function fielddayAdminScripts() { wp_register_script('fieldday_pickr_script', fieldday_URL . '/assets/js/pickr.min.js', [], fieldday_VERSION); wp_enqueue_script('fieldday_admin_script', fieldday_URL . '/assets/js/fieldday_admin.js', array('jquery', 'fieldday_pickr_script'), fieldday_VERSION); wp_enqueue_style('fieldday_admin_style', fieldday_URL . '/assets/css/fielday_admin.css', array('fieldday_pickr_style'), fieldday_VERSION); wp_register_style('fieldday_pickr_style', fieldday_URL . '/assets/css/pickr.min.css', array(), fieldday_VERSION); } /** * Define constant if not already set. * * @param string $name Constant name. * @param string|bool $value Constant value. */ private function define($name, $value) { if (!defined($name)) { define($name, $value); } } /** * logout fieldday user on admin url */ private function BlockfielddayDashboard() { if (is_admin() && current_user_can(fieldday_ROLE) && !current_user_can('administrator') && !( defined('DOING_AJAX') && DOING_AJAX )) { wp_clear_auth_cookie(); wp_redirect(admin_url()); exit; } } public function remove_admin_bar() { if (!is_admin() && current_user_can(fieldday_ROLE)) { show_admin_bar(false); } } }