Files
elessi-theme/cores/nasa-theme-options.php

557 lines
19 KiB
PHP

<?php
defined('ABSPATH') or die(); // Exit if accessed directly
/**
* VC SETUP
*/
add_action('init', 'elessi_vc_setup');
if (!function_exists('elessi_vc_setup')) :
function elessi_vc_setup() {
if (!NASA_WPB_ACTIVE){
return;
}
global $nasa_opt;
/**
* Row (add fullwidth)
*/
vc_add_param('vc_row', array(
"type" => 'checkbox',
"heading" => esc_html__("Fullwidth ?", 'elessi-theme'),
"param_name" => "fullwidth",
"value" => array(
esc_html__('Yes, Please!', 'elessi-theme') => '1'
)
));
/**
* Add param from row element
*/
vc_add_param('vc_row', array(
"type" => "dropdown",
"heading" => esc_html__("Width full side", 'elessi-theme'),
"param_name" => "width_side",
'value' => array(
esc_html__('None', 'elessi-theme') => '',
esc_html__('Full width to left', 'elessi-theme') => 'left',
esc_html__('Full width to right', 'elessi-theme') => 'right'
),
'std' => '',
"description" => esc_html__('Only use for Visual Composer Template.', 'elessi-theme'),
));
/**
* Add params from tab element
*/
vc_add_param('vc_tta_tabs', array(
"type" => "dropdown",
"heading" => esc_html__("Font Size Title", 'elessi-theme'),
"param_name" => "title_font_size",
"value" => array(
esc_html__('Not Set', 'elessi-theme') => '',
esc_html__('X-Large', 'elessi-theme') => 'xl',
esc_html__('Large', 'elessi-theme') => 'l',
esc_html__('Medium', 'elessi-theme') => 'm',
esc_html__('Small', 'elessi-theme') => 's',
esc_html__('Tiny', 'elessi-theme') => 't'
),
"std" => ''
));
vc_add_param('vc_tta_tabs', array(
"type" => "dropdown",
"heading" => esc_html__("Style", 'elessi-theme'),
"param_name" => "tabs_display_type",
"value" => array(
esc_html__('Classic 2D - No border', 'elessi-theme') => '2d-no-border',
esc_html__('Classic 2D - Radius', 'elessi-theme') => '2d-radius',
esc_html__('Classic 2D - Radius - Dash', 'elessi-theme') => '2d-radius-dashed',
esc_html__('Classic 2D - Has BG color', 'elessi-theme') => '2d-has-bg',
esc_html__('Classic 2D', 'elessi-theme') => '2d',
esc_html__('Classic 3D', 'elessi-theme') => '3d',
esc_html__('Slide', 'elessi-theme') => 'slide',
esc_html__('Vertical', 'elessi-theme') => 'ver'
),
"std" => '2d-no-border'
));
vc_add_param('vc_tta_tabs', array(
"type" => "colorpicker",
"heading" => esc_html__("Tabs Background color", 'elessi-theme'),
"param_name" => "tabs_bg_color",
"std" => '#efefef',
"dependency" => array(
"element" => "tabs_display_type",
"value" => array(
"2d-has-bg"
)
)
));
vc_add_param('vc_tta_tabs', array(
"type" => "colorpicker",
"heading" => esc_html__("Tabs text color", 'elessi-theme'),
"param_name" => "tabs_text_color",
"std" => '',
"dependency" => array(
"element" => "tabs_display_type",
"value" => array(
"2d-has-bg"
)
)
));
vc_add_param('vc_tta_accordion', array(
"type" => "dropdown",
"heading" => esc_html__("Layout", 'elessi-theme'),
"param_name" => "accordion_layout",
'value' => array(
esc_html__('Border Wrapper', 'elessi-theme') => 'has-border',
esc_html__('Without Border Wrapper', 'elessi-theme') => 'no-border'
),
'std' => 'has-border',
"description" => esc_html__('Only use for Accordion.', 'elessi-theme'),
));
vc_add_param('vc_tta_accordion', array(
"type" => "dropdown",
"heading" => esc_html__("Toggle Icon", 'elessi-theme'),
"param_name" => "accordion_icon",
'value' => array(
esc_html__('Plus', 'elessi-theme') => 'plus',
esc_html__('Arrow', 'elessi-theme') => 'arrow'
),
'std' => 'plus',
"description" => esc_html__('Only use for Accordion.', 'elessi-theme'),
));
vc_add_param('vc_tta_accordion', array(
"type" => 'checkbox',
"heading" => esc_html__("Hide First Section ?", 'elessi-theme'),
"param_name" => "accordion_hide_first",
"value" => array(
esc_html__('Yes, Please!', 'elessi-theme') => '1'
)
));
vc_add_param('vc_tta_accordion', array(
"type" => 'checkbox',
"heading" => esc_html__("Show Multi", 'elessi-theme'),
"param_name" => "accordion_show_multi",
"value" => array(
esc_html__('Yes, Please!', 'elessi-theme') => '1'
)
));
/**
* Add params from section tab element
*/
vc_add_param('vc_tta_section', array(
"type" => "textfield",
"heading" => esc_html__("Add Icon NasaTheme (Using for Section of Tabs)", 'elessi-theme'),
"param_name" => "section_nasa_icon",
"std" => '',
'readonly' => 1,
'description' => '<a class="nasa-chosen-icon left" data-fill="section_nasa_icon" href="javascript:void(0);">Click Here to Add Icon NasaTheme</a><a class="nasa-remove-icon right" data-id="section_nasa_icon" href="javascript:void(0);">Remove Icon NasaTheme</a><p class="nasa-clearfix"></p>'
));
/**
* Add params image for Tab
*/
vc_add_param('vc_tta_section', array(
"type" => "attach_image",
"heading" => esc_html__("Add Icon Image (Using for Section of Tabs)", 'elessi-theme'),
"param_name" => "section_nasa_img",
"std" => '',
'description' => '',
'admin_label' => true,
));
vc_add_param('vc_tta_section', array(
"type" => "textarea_raw_html",
"heading" => esc_html__("Before Tabs Title (Using for Section of Tabs)", 'elessi-theme'),
"param_name" => "before_tab_title",
"std" => ''
));
vc_add_param('vc_tta_section', array(
"type" => "textarea_raw_html",
"heading" => esc_html__("After Tabs Title (Using for Section of Tabs)", 'elessi-theme'),
"param_name" => "after_tab_title",
"std" => ''
));
/**
* For Mobile Layout
*/
$option_mobile = !isset($nasa_opt['enable_nasa_mobile']) || $nasa_opt['enable_nasa_mobile'] ? true : false;
if ($option_mobile) {
/**
* Hide on mobile for Row
*/
vc_add_param('vc_row', array(
"type" => 'checkbox',
"heading" => esc_html__("Ignore on Mobile", 'elessi-theme'),
"param_name" => "hide_in_mobile",
"value" => array(
esc_html__('Yes, Please!', 'elessi-theme') => '1'
)
));
/**
* Hide on mobile for Mobile
*/
vc_add_param('vc_column', array(
"type" => 'checkbox',
"heading" => esc_html__("Ignore on Mobile", 'elessi-theme'),
"param_name" => "hide_in_mobile",
"value" => array(
esc_html__('Yes, Please!', 'elessi-theme') => '1'
)
));
}
/**
* Custom shortcode
*/
$param_nasa_sc_icons = array(
"name" => esc_html__("Header Icons", 'elessi-theme'),
"base" => "nasa_sc_icons",
'icon' => 'icon-wpb-nasatheme',
'description' => esc_html__("Header icons Cart | Wishlist | Compare", 'elessi-theme'),
"category" => esc_html__('Header Builder', 'elessi-theme'),
"params" => array(
array(
"type" => "dropdown",
"heading" => esc_html__("Show Mini Account", 'elessi-theme'),
"param_name" => "show_mini_acc",
"value" => array(
esc_html__('Yes', 'elessi-theme') => 'yes',
esc_html__('No', 'elessi-theme') => 'no'
),
"std" => 'yes',
"admin_label" => true
),
array(
"type" => "dropdown",
"heading" => esc_html__("Show Mini Cart", 'elessi-theme'),
"param_name" => "show_mini_cart",
"value" => array(
esc_html__('Yes', 'elessi-theme') => 'yes',
esc_html__('No', 'elessi-theme') => 'no'
),
"std" => 'yes',
"admin_label" => true
),
array(
"type" => "dropdown",
"heading" => esc_html__("Show Mini Compare", 'elessi-theme'),
"param_name" => "show_mini_compare",
"value" => array(
esc_html__('Yes', 'elessi-theme') => 'yes',
esc_html__('No', 'elessi-theme') => 'no'
),
"std" => 'yes',
"admin_label" => true
),
array(
"type" => "dropdown",
"heading" => esc_html__("Show Mini Wishlist", 'elessi-theme'),
"param_name" => "show_mini_wishlist",
"value" => array(
esc_html__('Yes', 'elessi-theme') => 'yes',
esc_html__('No', 'elessi-theme') => 'no'
),
"std" => 'yes',
"admin_label" => true
),
array(
"type" => "textfield",
"heading" => esc_html__("Extra class name", 'elessi-theme'),
"param_name" => "el_class",
"description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", 'elessi-theme')
)
)
);
vc_map($param_nasa_sc_icons);
/**
* Search form in header
*/
$param_nasa_search = array(
"name" => esc_html__("Header Search", 'elessi-theme'),
"base" => "nasa_sc_search_form",
'icon' => 'icon-wpb-nasatheme',
'description' => esc_html__("Header search form", 'elessi-theme'),
"category" => esc_html__('Header Builder', 'elessi-theme'),
"params" => array(
array(
"type" => "textfield",
"heading" => esc_html__("Extra class name", 'elessi-theme'),
"param_name" => "el_class",
"description" => esc_html__("If you wish to style particular content element differently, then use this field to add a class name and then refer to it in your css file.", 'elessi-theme')
)
)
);
vc_map($param_nasa_search);
// if (function_exists('nasa_header_icons_sc')) {
// add_shortcode('nasa_sc_icons', 'nasa_header_icons_sc');
// }
// if (function_exists('nasa_header_search_sc')) {
// add_shortcode('nasa_sc_search_form', 'nasa_header_search_sc');
// }
}
endif;
/* add_filter('vc_map_get_attributes', 'elessi_ct_attrs_tabs', 10, 2);
if (!function_exists('elessi_ct_attrs_tabs')) :
function elessi_ct_attrs_tabs($atts, $tag) {
if ($tag == 'vc_tta_section') {
$atts['before_tab_title'] = $atts['before_tab_title'] ? html_entity_decode($atts['before_tab_title']) : '';
$atts['after_tab_title'] = $atts['after_tab_title'] ? html_entity_decode($atts['after_tab_title']) : '';
}
return $atts;
}
endif; */
/**
* Support Upload SVG Media
*/
add_filter('upload_mimes', 'elessi_enable_svg_upload', 10, 1);
if (!function_exists('elessi_enable_svg_upload')) :
function elessi_enable_svg_upload($mimes) {
global $nasa_opt;
if (!isset($nasa_opt['sp_upload_svg']) || $nasa_opt['sp_upload_svg']) {
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
}
return $mimes;
}
endif;
/**
* *.ico check
*/
add_filter('wp_check_filetype_and_ext', 'elessi_check_ico_ext', 10, 4);
if (!function_exists('elessi_check_ico_ext')) :
function elessi_check_ico_ext($types, $file, $filename, $mimes) {
global $nasa_opt;
if (isset($nasa_opt['sp_upload_ico']) && $nasa_opt['sp_upload_ico']) {
if (false !== strpos($filename, '.ico')) {
$types['ext'] = 'ico';
$types['type'] = 'image/ico';
}
}
return $types;
}
endif;
/**
* Support Upload ICO Media
*/
add_filter('upload_mimes', 'elessi_enable_ico_upload', 10, 1);
if (!function_exists('elessi_enable_ico_upload')) :
function elessi_enable_ico_upload($mimes) {
global $nasa_opt;
if (isset($nasa_opt['sp_upload_ico']) && $nasa_opt['sp_upload_ico']) {
$mimes['ico'] = 'image/ico';
}
return $mimes;
}
endif;
/**
* HTML Loader
*/
if (!function_exists('elessi_loader_html')) :
function elessi_loader_html($id_attr = null, $relative = true) {
$id = $id_attr != null ? ' id="' . esc_attr($id_attr) . '"' : '';
$class = $relative ? ' class="nasa-relative nasa-fullsize"' : '';
return
'<div' . $id . $class . '>' .
'<div class="nasa-loader"></div>' .
'</div>';
}
endif;
/**
* Start captcha
*/
if (!function_exists('elessi_start_session')) :
function elessi_start_session() {
if (!session_id()) {
session_start();
}
}
endif;
/**
* Captcha for Register form
*/
add_action('init', 'elessi_register_field_captcha_img');
if (!function_exists('elessi_register_field_captcha_img')) :
function elessi_register_field_captcha_img() {
global $nasa_opt;
if (!isset($nasa_opt['register_captcha']) || !$nasa_opt['register_captcha']) {
return;
}
/**
* No support - server no support create image
*/
if (!function_exists('imagecreatetruecolor')) {
return;
}
if (isset($_REQUEST['nasa-captcha-register']) && $_REQUEST['nasa-captcha-register'] === '1') {
require_once ELESSI_THEME_PATH . '/cores/nasa-captcha.php';
$captcha = new Nasa_Captcha();
if (!$captcha) {
return;
}
$code = $captcha->get_and_show_image();
elessi_start_session();
// Save code session
$_SESSION['nasa_captcha_code_' . $_REQUEST['nasa-captcha-register']] = $code;
// Save code cookie
// setcookie('nasa_captcha_code_' . $_REQUEST['nasa-captcha-register'], $code, time() + 300, "/");
die();
}
return;
}
endif;
/**
* Add field captcha for Register form
*/
add_action('woocommerce_register_form', 'elessi_register_form_field_captcha');
if (!function_exists('elessi_register_form_field_captcha')) :
function elessi_register_form_field_captcha() {
global $nasa_opt;
if (!isset($nasa_opt['register_captcha']) || !$nasa_opt['register_captcha']) {
return;
}
/**
* No support - server no support create image
*/
if (!function_exists('imagecreatetruecolor')) {
return;
}
echo '<p class="nasa-form-row-captcha hidden-tag"></p>';
}
endif;
/**
* Check error Captcha
*/
add_filter('woocommerce_registration_errors', 'elessi_check_captcha_registration_errors', 10, 3);
if (!function_exists('elessi_check_captcha_registration_errors')) :
function elessi_check_captcha_registration_errors($errors, $username, $email) {
global $nasa_opt;
/**
* Disable check Captcha
*/
if (!isset($nasa_opt['register_captcha']) || !$nasa_opt['register_captcha']) {
return $errors;
}
/**
* No support - server no support create image
*/
if (!function_exists('imagecreatetruecolor')) {
return $errors;
}
/**
* Ignore when Create Account in Checkout page
*/
if (isset($_REQUEST['wc-ajax']) && $_REQUEST['wc-ajax'] == 'checkout') {
return $errors;
}
/**
* Init check
*/
$input = array();
/**
* For Ajax form
*/
if (isset($_REQUEST['data']) && $_REQUEST['data']) {
foreach ($_REQUEST['data'] as $values) {
if (isset($values['name']) && isset($values['value'])) {
$input[$values['name']] = $values['value'];
}
}
}
/**
* For Default form
*/
else {
if (isset($_REQUEST['nasa-captcha-key'])) {
$input['nasa-captcha-key'] = $_REQUEST['nasa-captcha-key'];
}
if (isset($_REQUEST['nasa-input-captcha'])) {
$input['nasa-input-captcha'] = $_REQUEST['nasa-input-captcha'];
}
}
/**
* Check error Captcha
*/
elessi_start_session();
if (
!isset($input['nasa-captcha-key']) ||
!isset($input['nasa-input-captcha']) ||
!isset($_SESSION['nasa_captcha_code_' . $input['nasa-captcha-key']]) ||
$_SESSION['nasa_captcha_code_' . $input['nasa-captcha-key']] != strtolower($input['nasa-input-captcha'])) {
$errors->add('nasa-captcha-register', esc_html__('Captcha Error!', 'elessi-theme'));
}
return $errors;
}
endif;
/**
* Fix style WooCommerce Stripe
*/
add_filter('wc_stripe_upe_params', function ($stripe_params) {
$stripe_params['appearance'] = (object) array(
'theme' => 'flat'
);
return $stripe_params;
});