File "class-metabox-wcps.php"

Full Path: /home/vantageo/public_html/cache/.wp-cli/wp-content/plugins/woocommerce-products-slider/includes/class-metabox-wcps.php
File size: 14.89 KB
MIME-type: text/x-php
Charset: utf-8

<?php
if ( ! defined('ABSPATH')) exit;  // if direct access

class class_wcps_metabox{
	
	public function __construct(){

		//meta box action for "wcps"
		add_action('add_meta_boxes', array($this, 'wcps_post_meta_wcps'));
		add_action('save_post', array($this, 'meta_boxes_wcps_save'), 99);



		}


	public function wcps_post_meta_wcps($post_type){

            add_meta_box('metabox-wcps',__('WCPS data', 'woocommerce-products-slider'), array($this, 'meta_box_wcps_data'), 'wcps', 'normal', 'high');
        add_meta_box('metabox-wcps-side',__('WCPS Help', 'woocommerce-products-slider'), array($this, 'meta_box_wcps_side'), 'wcps', 'side', 'low');

		}



    public function meta_box_wcps_side($post){

	    ?>
        <div class="plugin-help-search">
            <input type="search" value="" placeholder="Start typing">

            <ul>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=hEmggd6pDFw&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=9">Version 1 13 10 overview</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=kn3skEwh5t4&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=2">Data migration</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=lQuacOHKp5U&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=15">Custom thumbnail size</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=_HMHaSjjHdo&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=8&t=0s">Customize layouts</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=UVa0kfo9oI4&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=3&t=4s">Query product by categories</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=qJWCizg5res&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=4&t=0s">Exclude featured products</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=d_KZg_cghow&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=5&t=0s">Exclude on sale products</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=HbpNaqrlppk&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=6&t=0s">Exclude out of stock products</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=Ss5wkHoyzFE&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=7&t=0s">Query product by tags</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=SSIfHT2UK0Y&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=9&t=0s">Display latest products</a></li>

                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=bWVvTFbSups&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=13&t=0s">Dokan vendors slider</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=dy68CuFe51w&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=11">Create categories slider</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=RLMXZmb_9_g&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=10">Create slider for customer orders</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.youtube.com/watch?v=0XTVH09YuIo&list=PL0QP7T2SN94bgierw1J8Qn3sf4mZo7F9f&index=13">Easy digital downloads slider</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.pickplugins.com/documentation/woocommerce-products-slider/faq/how-to-activate-license/">How to activate license?</a></li>
                <li><i class="far fa-dot-circle"></i> <a href="https://www.pickplugins.com/documentation/woocommerce-products-slider/faq/install-pro-version/">How to install pro version?</a></li>



            </ul>
        </div>



        <style >
            .plugin-help-search{}
            .plugin-help-search input[type=search]{
                width: 100%;
            }
        </style>

        <script>
            jQuery(document).ready(function($){
                jQuery(document).on('keyup', '.plugin-help-search input', function(){
                    keyword = jQuery(this).val().toLowerCase();
                    content_body = [];

                    console.log(keyword);

                    $('.plugin-help-search li').each(function( index ) {
                        $( this ).hide();
                        content = $( this ).text().toLowerCase();
                        content_body[index] = content;
                        n = content_body[index].indexOf(keyword);
                        if(n<0){
                            $( this ).hide();
                        }else{
                            $( this ).show();
                        }
                    });
                })
            })
        </script>

        <?php

    }

	public function meta_box_wcps_data($post) {
 
        // Add an nonce field so we can check for it later.
        wp_nonce_field('wcps_nonce_check', 'wcps_nonce_check_value');
 
        // Use get_post_meta to retrieve an existing value from the database.
       // $wcps_data = get_post_meta($post -> ID, 'wcps_data', true);

        $post_id = $post->ID;



        $settings_tabs_field = new settings_tabs_field();

        $wcps_options = get_post_meta($post_id,'wcps_options', true);
        $current_tab = isset($wcps_options['current_tab']) ? $wcps_options['current_tab'] : 'layouts';
        $slider_for = !empty($wcps_options['slider_for']) ? $wcps_options['slider_for'] : 'products';


        $wcps_settings_tab = array();

        $wcps_settings_tabs[] = array(
            'id' => 'shortcode',
            'title' => sprintf(__('%s Shortcode','woocommerce-products-slider'),'<i class="fas fa-laptop-code"></i>'),
            'priority' => 1,
            'active' => ($current_tab == 'shortcode') ? true : false,
        );

        $wcps_settings_tabs[] = array(
            'id' => 'slider_options',
            'title' => sprintf(__('%s Slider options','woocommerce-products-slider'),'<i class="fa fa-cogs"></i>'),
            'priority' => 2,
            'active' => ($current_tab == 'slider_options') ? true : false,
        );

        $wcps_settings_tabs[] = array(
            'id' => 'query_product',
            'title' => sprintf(__('%s Query product','woocommerce-products-slider'),'<i class="fas fa-qrcode"></i>'),
            'priority' => 3,
            'active' => ($current_tab == 'query_product') ? true : false,
            'data_visible' => 'products',
            'hidden' => (($slider_for == 'categories') ? true : false) || (($slider_for == 'orders') ? true : false) || (($slider_for == 'dokan_vendors') ? true : false) || (($slider_for == 'edd_downloads') ? true : false),
        );

        $wcps_settings_tabs[] = array(
            'id' => 'query_orders',
            'title' => sprintf(__('%s Query orders','woocommerce-products-slider'),'<i class="fas fa-qrcode"></i>'),
            'priority' => 3,
            'active' => ($current_tab == 'query_orders') ? true : false,
            'data_visible' => 'orders',
            'hidden' => (($slider_for == 'products') ? true : false) || (($slider_for == 'categories') ? true : false) || (($slider_for == 'dokan_vendors') ? true : false) || (($slider_for == 'edd_downloads') ? true : false),
        );

        $wcps_settings_tabs[] = array(
            'id' => 'query_categories',
            'title' => sprintf(__('%s Query categories','woocommerce-products-slider'),'<i class="fas fa-qrcode"></i>'),
            'priority' => 3,
            'active' => ($current_tab == 'query_categories') ? true : false,
            'data_visible' => 'categories',
            'hidden' => (($slider_for == 'products') ? true : false) || (($slider_for == 'orders') ? true : false) || (($slider_for == 'dokan_vendors') ? true : false) || (($slider_for == 'edd_downloads') ? true : false),
        );

        $wcps_settings_tabs[] = array(
            'id' => 'style',
            'title' => sprintf(__('%s Style','woocommerce-products-slider'),'<i class="fas fa-palette"></i>'),
            'priority' => 4,
            'active' => ($current_tab == 'style') ? true : false,
        );

        $wcps_settings_tabs[] = array(
            'id' => 'layouts',
            'title' => sprintf(__('%s Layouts','woocommerce-products-slider'),'<i class="fas fa-qrcode"></i>'),
            'priority' => 5,
            'active' => ($current_tab == 'layouts') ? true : false,
        );


        $wcps_settings_tabs[] = array(
            'id' => 'custom_scripts',
            'title' => sprintf(__('%s Custom scripts','woocommerce-products-slider'),'<i class="far fa-file-code"></i>'),
            'priority' => 6,
            'active' => ($current_tab == 'custom_scripts') ? true : false,
        );

        $wcps_settings_tabs[] = array(
            'id' => 'help_support',
            'title' => sprintf(__('%s Help support','woocommerce-products-slider'),'<i class="fas fa-hands-helping"></i>'),
            'priority' => 80,
            'active' => ($current_tab == 'help_support') ? true : false,
        );

        $wcps_settings_tabs[] = array(
            'id' => 'buy_pro',
            'title' => sprintf(__('%s Buy pro','woocommerce-products-slider'),'<i class="fas fa-store"></i>'),
            'priority' => 90,
            'active' => ($current_tab == 'buy_pro') ? true : false,
        );

        $wcps_settings_tabs = apply_filters('wcps_metabox_navs', $wcps_settings_tabs);

        $tabs_sorted = array();

        if(!empty($wcps_settings_tabs))
        foreach ($wcps_settings_tabs as $page_key => $tab) $tabs_sorted[$page_key] = isset( $tab['priority'] ) ? $tab['priority'] : 0;
        array_multisort($tabs_sorted, SORT_ASC, $wcps_settings_tabs);



        wp_enqueue_script('jquery');
        wp_enqueue_script('jquery-ui-sortable');
        wp_enqueue_script( 'jquery-ui-core' );
        wp_enqueue_script('jquery-ui-accordion');
        wp_enqueue_script('wp-color-picker');
        wp_enqueue_style('wp-color-picker');

        wp_enqueue_style( 'jquery-ui');
        wp_enqueue_style( 'font-awesome-5' );
        wp_enqueue_style( 'settings-tabs' );
        wp_enqueue_script( 'settings-tabs' );


		?>
        <script>
            jQuery(document).ready(function($){
                $(document).on('click', '.settings-tabs input[name="wcps_options[slider_for]"]', function(){
                    var val = $(this).val();

                    console.log( val );

                    $('.settings-tabs .tab-navs li').each(function( index ) {
                        data_visible = $( this ).attr('data_visible');

                        if(typeof data_visible != 'undefined'){
                            //console.log('undefined '+ data_visible );

                            n = data_visible.indexOf(val);
                            if(n<0){
                                $( this ).hide();
                            }else{
                                $( this ).show();
                            }
                        }else{
                            console.log('Not matched: '+ data_visible );


                        }
                    });


                })
            })


        </script>

        <div class="settings-tabs vertical">
            <input class="current_tab" type="hidden" name="wcps_options[current_tab]" value="<?php echo $current_tab; ?>">
            <div class="view-types">

                <?php


                $args = array(
                    'id'		=> 'slider_for',
                    'parent'		=> 'wcps_options',
                    'title'		=> __('Slider for','woocommerce-products-slider'),
                    'details'	=> '',
                    'type'		=> 'radio',
                    'value'		=> $slider_for,
                    'default'		=> '',
                    'args'		=> apply_filters('wcps_slider_for_args', array('products' => 'Products','orders' => 'Orders', 'categories' => 'Categories' )),
                );

                $settings_tabs_field->generate_field($args);

                ?>
            </div>

            <ul class="tab-navs">
                <?php
                foreach ($wcps_settings_tabs as $tab){
                    $id = $tab['id'];
                    $title = $tab['title'];
                    $active = $tab['active'];
                    $data_visible = isset($tab['data_visible']) ? $tab['data_visible'] : '';
                    $hidden = isset($tab['hidden']) ? $tab['hidden'] : false;
                    ?>
                    <li <?php if(!empty($data_visible)):  ?> data_visible="<?php echo $data_visible; ?>" <?php endif; ?> class="tab-nav <?php if($hidden) echo 'hidden';?> <?php if($active) echo 'active';?>" data-id="<?php echo $id; ?>"><?php echo $title; ?></li>
                    <?php
                }
                ?>
            </ul>
            <?php
            foreach ($wcps_settings_tabs as $tab){
                $id = $tab['id'];
                $title = $tab['title'];
                $active = $tab['active'];
                ?>

                <div class="tab-content <?php if($active) echo 'active';?>" id="<?php echo $id; ?>">
                    <?php
                    do_action('wcps_metabox_content_'.$id, $post_id);
                    ?>
                </div>
                <?php
            }
            ?>
        </div>
        <div class="clear clearfix"></div>

        <?php


   		}




	public function meta_boxes_wcps_save($post_id){

        /*
         * We need to verify this came from the our screen and with
         * proper authorization,
         * because save_post can be triggered at other times.
         */

        // Check if our nonce is set.
        if (!isset($_POST['wcps_nonce_check_value']))
            return $post_id;

        $nonce = sanitize_text_field($_POST['wcps_nonce_check_value']);

        // Verify that the nonce is valid.
        if (!wp_verify_nonce($nonce, 'wcps_nonce_check'))
            return $post_id;

        // If this is an autosave, our form has not been submitted,
        //     so we don't want to do anything.
        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
            return $post_id;

        // Check the user's permissions.
        if ('page' == $_POST['post_type']) {

            if (!current_user_can('edit_page', $post_id))
                return $post_id;

        } else {

            if (!current_user_can('edit_post', $post_id))
                return $post_id;
        }

        /* OK, its safe for us to save the data now. */

        do_action('wcps_metabox_save', $post_id);


					
		}
	
	}


new class_wcps_metabox();