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'] = ''; }*/ if (isset($_REQUEST['cartId'])) { setcookie('GcartId', $_REQUEST['cartId'], time() + (86400), "/"); // 86400 = 1 day } if (isset($_REQUEST['parentId'])) { setcookie('GparentId', $_REQUEST['parentId'], time() + (86400), "/"); // 86400 = 1 day } $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']); /* Not Required Anymore add_action('wp_footer', [$this, 'KmStickyWidget']); Not Required Anymore end */ add_action('wp_footer', [$this, 'KmStickyWidgetAddToCartIcon']); /* 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); $fieldday_text_color = $this->engine->getValue('textcolor', $fielddaySetting, false); if ($fieldday_text_color == '') { $fieldday_text_color = "#ffffff"; } $fieldday_text_color2 = $this->engine->getValue('textcolor2', $fielddaySetting, false); $fieldday_user_menu_font_size = $this->engine->getValue('fieldday_user_menu_font_size', $fielddaySetting, false); if ($fieldday_text_color2 == '') { $fieldday_text_color2 = "#ffffff"; } 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 == $args->menu->term_id) { $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 == $menu->term_id) { $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_PLACEHOLDER_CHECK', fieldday_URL . '/assets/img/refund_cancel_check.png'); $this->define('fieldday_PLACEHOLDER_USER', fieldday_URL . '/assets/img/personal_info.png'); $this->define('fieldday_CURRENCY', '$'); $this->define('fieldday_ROLE', 'km_user'); $this->define('fieldday_NOT_ALLOWED_INPUT_CHAR', '/http:|https:|script|src=|\/|\.js|<|>/i'); } /** * 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 NowContact Us Now
'; } } public function KmStickyWidgetAddToCartIcon() { global $fielddaySetting; $isenabled = $this->engine->getValue('fieldday_sticky_widget', $fielddaySetting, false); $fieldday_sticky_icon_bg_color = $this->engine->getValue('fieldday_sticky_icon_bg_color', $fielddaySetting, false); $fieldday_sticky_icon_textcolor = $this->engine->getValue('fieldday_sticky_icon_textcolor', $fielddaySetting, false); $kmPrimaryColor_Value = $this->engine->getValue('primary_color', $fielddaySetting, false); $cartdata = fieldday()->engine->GetCartData(); if ($cartdata) { $count = count($cartdata); } else { $count = 0; } if (!$fieldday_sticky_icon_textcolor || $fieldday_sticky_icon_textcolor == '') { $fieldday_sticky_icon_textcolor = '#ffffff'; } if (!$fieldday_sticky_icon_bg_color || $fieldday_sticky_icon_bg_color == '') { if ($kmPrimaryColor_Value && $kmPrimaryColor_Value != '') { $fieldday_sticky_icon_bg_color = $kmPrimaryColor_Value; } else { $fieldday_sticky_icon_bg_color = '#000000'; } } if ($isenabled == 'enable') { echo '
' . $count . '
'; } } /** * register and enque front end styles and scripts. * * @since 1.0.0 */ public function fielddayScripts() { global $post; global $fielddaySetting; $post_id = isset($post) ? $post->ID : 0; $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_stripe_v2', 'https://js.stripe.com/v2/', [], fieldday_VERSION, true); wp_register_script('km_stripe_v3', 'https://js.stripe.com/v3/', [], 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('fieldday_script', fieldday_URL . "/assets/js/fieldday{$this->suffix}.js", array('jquery', 'km_stripe_v2', 'km_stripe_v3', '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); /**** Pollyfill js commented becuase of hack attack */ /* 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'], 'isEnabledLocationPopUpPurchasePage' => $fielddaySetting['fieldday_sticky_location_widget'] ?? '', 'fieldday_provider_country_code' => $fielddaySetting['fieldday_provider_country_code'] ?? 'US', 'fieldday_provider_dial_code' => $fielddaySetting['fieldday_provider_dial_code'] ?? '1', ) ); } public function fielddayAdminScripts() { // Register and enqueue the JavaScript file with jQuery as a dependency wp_register_script('intl-tel-input-admin-js', fieldday_URL . '/assets/js/intlTelInput.js', [], fieldday_VERSION, true); wp_enqueue_script('intl-tel-input-admin-js'); wp_register_style('intl-tel-input-admin-css', fieldday_URL . '/assets/css/intlTelInput.css', [], fieldday_VERSION); wp_enqueue_style('intl-tel-input-admin-css'); // Register and enqueue the CSS file and js file 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); } } }