pages = get_pages();
}
/**
* Add options page
*/
public function fieldday__plugin_page()
{
add_menu_page(
'fieldday Options', 'Field Day', 'manage_options', 'fieldday_options', [$this, 'fieldday_options_page'], fieldday_URL . '/assets/img/icon.png'
);
}
/**
* Options page callback
*/
public function fieldday_options_page()
{
// Set class property
$this->options = get_option('fieldday_options');
if (!is_array($this->options)) {
$this->options = [];
}
echo '
';
echo wp_sprintf('
%s ', __('fieldday Settings', 'fieldday'));
echo '';
echo '';
}
/**
* Register and add settings
*/
public function page_init()
{
register_setting(
'fieldday_option_group', // Option group
'fieldday_options', // Option name
[$this, 'sanitize']// Sanitize
);
add_settings_section(
'fieldday_general', // ID
'General Setting', // Title
[$this, 'general_setting'], // Callback
'fieldday_options' // Page
);
add_settings_field(
'fieldday_session_filters', __('Session Filters', 'fieldday'), [$this, 'fieldday_session_filters'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_api_authorization', __('Redirect Page after Login', 'fieldday'), [$this, 'fieldday_login_redirect_render'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_myAccount_page', __('Select My Account Page', 'fieldday'), [$this, 'fieldday_myaccount_redirect_render'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_purchase_page', __('Select Purchase Page', 'fieldday'), [$this, 'fieldday_purchase_redirect_render'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_thankyou_page', __('Select Thankyou Page', 'fieldday'), [$this, 'fieldday_thankyou_redirect_render'], 'fieldday_options', 'fieldday_general'
);
/*
add_settings_field(
'fieldday_provider_page', __('Select Provider Page', 'fieldday'), [$this, 'fieldday_provider_redirect_render'], 'fieldday_options', 'fieldday_general'
);
*/
add_settings_field(
'fieldday_user_menu', __('User Information Menu', 'fieldday'), [$this, 'fieldday_user_menu'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_user_menu_height', __('User Menu Image Height', 'fieldday'), [$this, 'fieldday_user_menu_height'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_user_menu_width', __('User Menu Image Width', 'fieldday'), [$this, 'fieldday_user_menu_width'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_user_menu_font_size', __('User Menu Image Font Size', 'fieldday'), [$this, 'fieldday_user_menu_font_size'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_cart_menu', __('Cart Icon', 'fieldday'), [$this, 'fieldday_cart_menu'], 'fieldday_options', 'fieldday_general'
);
/*
add_settings_field(
'fieldday_siblingpop_menu', __('Sibling Popup', 'fieldday'), [$this, 'fieldday_siblingpop_menu'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_siblingpopup_template', __('Global Sibling Template', 'fieldday'), [$this, 'fieldday_siblingpopup_display'], 'fieldday_options', 'fieldday_general'
); */
add_settings_field(
'fieldday_globalpop_menu', __('Popup', 'fieldday'), [$this, 'fieldday_globalpop_menu'], 'fieldday_options', 'fieldday_general'
);
global $fielddaySetting;
$isPopupEnable = fieldday()->engine->getValue('fieldday_global_popup', $fielddaySetting, false);
if ($isPopupEnable == 'enabled') {
add_settings_field(
'fieldday_globalpopup_template', __('Popup Template', 'fieldday'), [$this, 'fieldday_globalpopup_display'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_globalpopup_page', __('Page', 'fieldday'), [$this, 'fieldday_globalpopup_page'], 'fieldday_options', 'fieldday_general'
);
}
add_settings_field(
'global_popup_key', __('Global Popup Key', 'fieldday'), [$this, 'fieldday_global_popup_key'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_debug_mode', __('Debug Mode', 'fieldday'), [$this, 'fieldday_debug_mode'], 'fieldday_options', 'fieldday_general'
);
/* add_settings_field(
'fieldday_purchase_layout_mode', __('Purchase Session Layout', 'fieldday'), [$this, 'fieldday_purchase_layout_mode'], 'fieldday_options', 'fieldday_general'
); */
add_settings_field(
'fieldday_facebook_redirect', __('Facebook Redirect Url', 'fieldday'), [$this, 'fieldday_facebook_redirect'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_google_redirect', __('Google Login Url', 'fieldday'), [$this, 'fieldday_google_redirect'], 'fieldday_options', 'fieldday_general'
);
add_settings_section(
'fieldday_api_detail', // ID
'fieldday Api Detail', // Title
[$this, 'print_api_info'], // Callback
'fieldday_options' // Page
);
add_settings_field(
'fieldday_api_authorization', __('Authorization Key', 'fieldday'), [$this, 'fieldday_api_authorization_render'], 'fieldday_options', 'fieldday_api_detail'
);
add_settings_field(
'fieldday_provider_id', __('Provider ID', 'fieldday'), [$this, 'fieldday_provider_id_render'], 'fieldday_options', 'fieldday_api_detail'
);
add_settings_field(
'fieldday_api_url', __('API URL', 'fieldday'), [$this, 'fieldday_api_url_render'], 'fieldday_options', 'fieldday_api_detail'
);
add_settings_section(
'fieldday_recaptcha_detail', // ID
'reCaptcha Settings', // Title
[$this, 'print_recaptcha_info'], // Callback
'fieldday_options' // Page
);
add_settings_field(
'fieldday_google_recaptcha_id', __('reCaptcha Site Key', 'fieldday'), [$this, 'fieldday_google_recaptcha_id_render'], 'fieldday_options', 'fieldday_recaptcha_detail'
);
add_settings_field(
'fieldday_google_recaptcha_secret', __('reCaptcha Secret', 'fieldday'), [$this, 'fieldday_google_recaptcha_secret_render'], 'fieldday_options', 'fieldday_recaptcha_detail'
);
add_settings_section(
'fieldday_payment_mode', // ID
'Payment Mode', // Title
[$this, 'print_payment_mode'], // Callback
'fieldday_options' // Page
);
add_settings_field(
'fieldday_payment_mode_select', __('Select Payment Mode', 'fieldday'), [$this, 'fieldday_payment_mode_select_render'], 'fieldday_options', 'fieldday_payment_mode'
);
add_settings_section(
'fieldday_head_foot_scripts', // ID
'Header & Footer Script', // Title
function () {
return __('Header & Footer Script', 'fieldday');
}, // Callback
'fieldday_options' // Page
);
add_settings_field(
'fieldday_head_script_input', __('Header Script', 'fieldday'), [$this, 'fieldday_header_script'], 'fieldday_options', 'fieldday_head_foot_scripts'
);
add_settings_field(
'fieldday_foot_script_input', __('Footer Script', 'fieldday'), [$this, 'fieldday_footer_script'], 'fieldday_options', 'fieldday_head_foot_scripts'
);
add_settings_field(
'fieldday_theme_mode', __('Theme', 'fieldday'),
[$this, 'fieldday_theme_mode'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_filters_mode', __('Filters', 'fieldday'),
[$this, 'fieldday_filters_mode'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_calendar_view', __('Calendar View', 'fieldday'),
[$this, 'fieldday_calendar_view'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'default_settings_country', __('Select Country', 'fieldday'),
[$this, 'default_settings_country'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_colors', __('Theme Colors', 'fieldday'), [$this, 'fieldday_colors'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_highlightcolor', __('Highlight Color', 'fieldday'), [$this, 'fieldday_highlightcolor'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_textcolor', __('Text Color Primary Background', 'fieldday'), [$this, 'fieldday_textcolor'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_textcolor2', __('Text Color Secondary Background', 'fieldday'), [$this, 'fieldday_textcolor2'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_sticky_icon_textcolor', __('Sticky Widget Icon Color', 'fieldday'), [$this, 'fieldday_sticky_icon_textcolor'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_sticky_icon_bg_color', __('Sticky Widget Icon Background Color', 'fieldday'), [$this, 'fieldday_sticky_icon_bg_color'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_bullets', __('Bullets', 'fieldday'), [$this, 'fieldday_bullets'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_googlemapapi_mode', __('Google Map Api Key', 'fieldday'),
[$this, 'fieldday_googlemapapi_mode'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_sticky_widget', __('Enable Sticky Widget', 'fieldday'),
[$this, 'fieldday_sticky_widget'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_sticky_location_widget', __('Enable Sticky Locaction Widget on Purchase Page', 'fieldday'),
[$this, 'fieldday_sticky_location_widget'], 'fieldday_options', 'fieldday_general'
);
add_settings_field(
'fieldday_sticky_option', __('Select Option', 'fieldday'),
[$this, 'fieldday_sticky_option'], 'fieldday_options', 'fieldday_general'
);
}
/**
* Sanitize each setting field as needed
*
* @param array $input Contains all settings fields as array keys
*/
public function sanitize($input)
{
if (array_key_exists('fieldday_debug_mode', $input) && $input['fieldday_debug_mode'] == 'enabled') {
$blogname = get_bloginfo('name');
$blogurl = get_bloginfo('url');
$message = 'Hey There,';
$message .= '';
$message .= wp_sprintf('you have turned on the debug mode of fieldday at %s . Do not forget to turn it off to minimize the disc usage.', $blogname, $blogurl);
$message .= '
';
//deprecated since php 7.2
//add_filter('wp_mail_content_type', create_function('', 'return "text/html";'));
add_filter('wp_mail_content_type', function () {return 'text/html';});
$adminEmail = get_bloginfo('admin_email');
wp_mail($adminEmail, 'Important Alert.', $message);
}
return $input;
}
/**
* Print the fieldday api information
*/
public function general_setting()
{
print sprintf('');
}
/**
* Print the fieldday api information
*/
public function print_api_info()
{
print sprintf(__('Enter your Field Day API key details below. You can get it from %s', 'fieldday'), ' Here ');
}
/**
* Print the fieldday Payment mode
*/
public function print_payment_mode()
{
print sprintf(__('Select payment mode. live OR Sandbox.', 'fieldday'));
}
/**
* Print recaptcha information
*/
public function print_recaptcha_info()
{
print sprintf(__('Enter google reCaptcha details below. You can get it from %s', 'fieldday'), ' Here ');
}
/**
* display value from array
* @param String $key
* @param bolean $return
*
* @return String value from options
*/
private function displayValue($key, $return = false)
{
if (array_key_exists($key, $this->options)) {
if ($return) {
return $this->options[$key];
}
print $this->options[$key];
}
}
/**
* display dropdown of menus to display logged in user info in menu
*/
public function fieldday_user_menu()
{
$menus = wp_get_nav_menus(array('orderby' => 'name'));
echo '';
echo '-select menu- ';
if ($menus) {
foreach ($menus as $menu) {
$selected = $this->displayValue('user_menu', true) == $menu->term_id ? 'selected' : '';
echo wp_sprintf('%s ', $selected, $menu->term_id, $menu->name);
}
}
echo ' ';
}
public function fieldday_user_menu_height()
{
?>
'name'));
?>
-Select Option-
displayValue('cart_menu', true) == 'defaultview' ? 'selected' : ''; ?>>Default View
displayValue('cart_menu', true) == 'mainmenu' ? 'selected' : ''; ?>>Main Menu
'name'));
?>
displayValue('cart_menu', true) == 'defaultview' ? 'selected' : ''; ?>>Default View
displayValue('cart_menu', true) == $menu->term_id ? 'selected' : '';
echo wp_sprintf('%s ', $selected, $menu->term_id, $menu->name);
}
}
echo ' ';
}
/**
* enable/disable sibling popup
public function fieldday_siblingpop_menu() {
?>
displayValue('fieldday_sibling_popup', true) == 'enabled' ? 'selected' : ''; ?> value="enabled">Enable
displayValue('fieldday_sibling_popup', true) == 'disabled' ? 'selected' : ''; ?> value="disabled">Disable
";
\Elementor\Plugin::instance()->templates_manager->get_templates();
echo"";
}
}
public function fieldday_siblingpopup_template($template) {
if(!empty($template)){
?>
displayValue('fieldday_siblingpopup_template', true)) ? "selected" : ''; ?>
value="= $template['template_id'];?>">
= ucfirst($template['title']);?>
";
\Elementor\Plugin::instance()->templates_manager->get_templates();
echo "";
}
public function fieldday_globalpopup_template($template)
{
if (!empty($template) && $_REQUEST['page'] == 'fieldday_options') {
?>
displayValue('fieldday_globalpopup_template', true)) ? "selected" : ''; ?>
value="">
All
$page): ?>
displayValue('fieldday_globalpopup_page', true) == $page->ID ? 'selected' : ''; ?> value="ID; ?>">post_title); ?>
'>
displayValue('fieldday_debug_mode', true) == 'disabled' ? 'selected' : ''; ?> value="disabled">Disable
displayValue('fieldday_debug_mode', true) == 'enabled' ? 'selected' : ''; ?> value="enabled">Enable
displayValue('fieldday_purchase_layout_mode', true) == 'one' ? 'selected' : ''; ?> value="one">One Cloumn
displayValue('fieldday_purchase_layout_mode', true) == 'two' ? 'selected' : ''; ?> value="two">Two Cloumn
displayValue('session_filters', true);
if (!$session_filters) {
$session_filters = [];
}
?>
engine->fielddayFilters() as $key => $filter): ?>
value="">
'>
'>
'>
(Color used to Highlight the main/important text on website)
'>
(Primary text Color)
'>
(Secondary text Color)
displayValue('fieldday_bullets', true);
?>
name="fieldday_options[fieldday_bullets]" value="\2731">✱
name="fieldday_options[fieldday_bullets]" value="\27A3">➣
name="fieldday_options[fieldday_bullets]" value="\2013">–
name="fieldday_options[fieldday_bullets]" value="\2022">•
$page): ?>
displayValue('login_redirect', true) == $page->ID ? 'selected' : ''; ?> value="ID; ?>">post_title; ?>
$page): ?>
displayValue('myaccount_redirect', true) == $page->ID ? 'selected' : ''; ?> value="ID; ?>">post_title; ?>
pages;
?>
$page): ?>
displayValue('purchase_page', true) == $page->ID ? 'selected' : ''; ?> value="ID; ?>">post_title; ?>
pages;
?>
Must add [filedday_thankyou_page] shortcode on the page, if you want to show order details on Thankyou page. After the successfull order is placed users are redirected to thankyou page.Leave it empty if you wish to skip redirection.
Select Page
$page): ?>
displayValue('thankyou_page', true) == $page->ID ? 'selected' : ''; ?> value="ID; ?>">post_title; ?>
pages;
?>
$page): ?>
displayValue('provider_page', true) == $page->ID ? 'selected' : ''; ?> value="ID; ?>">post_title; ?>
displayValue('fieldday_payment_mode', true) == 'no' ? 'selected' : ''; ?> value="no">Sand Box
displayValue('fieldday_payment_mode', true) == 'yes' ? 'selected' : ''; ?> value="yes">Live
'>
'>
'>
'>
'>
'>
'>
displayValue('fieldday_theme_mode', true))) {
$defualtoption = 'list_view';
} else {
$defualtoption = $this->displayValue('fieldday_theme_mode', true);
}
$themelist = scandir($dir);
foreach ($themelist as $themename) {
if ($themename != '.' && $themename != '..') {
$themedisplayname = preg_replace('/[^A-Za-z0-9\-]/', " ", ucfirst($themename));
?>
value="=$themename;?>">=$themedisplayname;?>
Select
displayValue('fieldday_filters_mode', true) == 'top' ? 'selected' : ''; ?>>Top of Listings
displayValue('fieldday_filters_mode', true) == 'slide' ? 'selected' : ''; ?>>Slide to Left
displayValue('fieldday_calendar_view', true) == 'default' ? 'selected' : ''; ?>>Default
displayValue('fieldday_calendar_view', true) == 'detailed' ? 'selected' : ''; ?>>Detailed Session View
displayValue('fieldday_provider_country_code', true) ?? 'US';
$km_default_settings_country_dialCode = $this->displayValue('fieldday_provider_dial_code', true) ?? '1';
?>
'>
displayValue('fieldday_sticky_widget', true) == 'enable' ? 'checked' : ''; ?> name='fieldday_options[fieldday_sticky_widget]'>
displayValue('fieldday_sticky_location_widget', true) == 'enable' ? 'checked' : ''; ?> name='fieldday_options[fieldday_sticky_location_widget]'>
Select
displayValue('fieldday_sticky_option', true) == 'contactform' ? 'selected' : ''; ?>>Contact Us
Subscription (Not implemented yet)
(Selects what shows in sticky Widget)