Your IP : 18.118.82.168


Current Path : /home/church/www/launch100ar.com/wp-content/plugins/post-grid/includes/
Upload File :
Current File : /home/church/www/launch100ar.com/wp-content/plugins/post-grid/includes/functions-ajax.php

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



add_action('post_grid_pagination_ajax_pagination', 'post_grid_pagination_ajax_pagination_22032023', 10, 2);

if (!function_exists('post_grid_pagination_ajax_pagination_22032023')) {
    function post_grid_pagination_ajax_pagination_22032023($args, $post_grid_wp_query)
    {

        wp_enqueue_script('post_grid_scripts');
        wp_localize_script('post_grid_scripts', 'post_grid_ajax', array('post_grid_ajaxurl' => admin_url('admin-ajax.php')));

        $grid_id = $args['grid_id'];

        $post_grid_options = $args['options'];

        if (get_query_var('paged')) {
            $paged = get_query_var('paged');
        } elseif (get_query_var('page')) {
            $paged = get_query_var('page');
        } else {
            $paged = 1;
        }

        $max_num_pages = isset($post_grid_wp_query->max_num_pages) ? $post_grid_wp_query->max_num_pages : 0;

        $pagination_prev_text = !empty($post_grid_options['pagination']['prev_text']) ? $post_grid_options['pagination']['prev_text'] : __('« Previous', 'post-grid');
        $pagination_next_text = !empty($post_grid_options['pagination']['next_text']) ? $post_grid_options['pagination']['next_text'] : __('Next »', 'post-grid');
        $pagination_max_num_pages = !empty($post_grid_options['pagination']['max_num_pages']) ? $post_grid_options['pagination']['max_num_pages'] : $max_num_pages;

        $pagination_font_size = !empty($post_grid_options['pagination']['font_size']) ? $post_grid_options['pagination']['font_size'] : '17px';
        $pagination_font_color = !empty($post_grid_options['pagination']['font_color']) ? $post_grid_options['pagination']['font_color'] : '#646464';
        $pagination_bg_color = !empty($post_grid_options['pagination']['bg_color']) ? $post_grid_options['pagination']['bg_color'] : '#646464';
        $pagination_active_bg_color = !empty($post_grid_options['pagination']['active_bg_color']) ? $post_grid_options['pagination']['active_bg_color'] : '#4b4b4b';

        if ($max_num_pages == 1) {

            return '';
        }

?>
        <div grid-id="<?php echo esc_attr($grid_id); ?>" id="paginate-ajax-<?php echo esc_attr($grid_id); ?>" class="paginate-ajax">
            <?php
            $big = 999999999; // need an unlikely integer
            echo paginate_links(array(
                'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
                'format' => '?paged=%#%',
                'current' => max(1, $paged),
                'total' => $pagination_max_num_pages,
                'prev_text'          => $pagination_prev_text,
                'next_text'          => $pagination_next_text,
            ));
            ?>
        </div>
        <style type="text/css">
            <?php echo '#post-grid-' . esc_attr($grid_id) . ' .pagination .page-numbers'; ?> {
                font-size: <?php echo esc_attr($pagination_font_size); ?>;
                color: <?php echo esc_attr($pagination_font_color); ?>;
                background: <?php echo esc_attr($pagination_bg_color); ?>;
            }

            <?php echo '#post-grid-' . esc_attr($grid_id) . ' .pagination .page-numbers:hover'; ?>,
            <?php echo '#post-grid-' . esc_attr($grid_id) . ' .pagination .page-numbers.current'; ?> {
                background: <?php echo esc_attr($pagination_active_bg_color); ?>;
            }
        </style>
<?php

    }
}



if (!function_exists('post_grid_paginate_ajax_free')) {

    function post_grid_paginate_ajax_free()
    {


        $formData = isset($_POST['formData']) ? ($_POST['formData']) : '';
        parse_str($formData, $form_data);

        $keyword = isset($form_data['keyword']) ? sanitize_text_field($form_data['keyword']) : '';



        $grid_id = isset($_POST['grid_id']) ? sanitize_text_field($_POST['grid_id']) : '';
        $paged = isset($_POST['current_page']) ? sanitize_text_field($_POST['current_page']) : '';

        //$paged = sanitize_text_field($_POST['current_page']);

        $post_grid_options = get_post_meta($grid_id, 'post_grid_meta_options', true);

        //$keyword = isset($_POST['keyword']) ? sanitize_text_field($_POST['keyword']) : '';


        $post_types = isset($post_grid_options['post_types']) ? $post_grid_options['post_types'] : array('post');
        //$keyword = isset($post_grid_options['keyword']) ? $post_grid_options['keyword'] : '';
        $exclude_post_id = isset($post_grid_options['exclude_post_id']) ? $post_grid_options['exclude_post_id'] : '';

        $post_status = isset($post_grid_options['post_status']) ? $post_grid_options['post_status'] : 'publish';
        $query_order = isset($post_grid_options['query_order']) ? $post_grid_options['query_order'] : 'DESC';
        $query_orderby = isset($post_grid_options['query_orderby']) ? $post_grid_options['query_orderby'] : array('date');
        $query_orderby = implode(' ', $query_orderby);
        $offset = isset($post_grid_options['offset']) ? (int)$post_grid_options['offset'] : '';
        $posts_per_page = isset($post_grid_options['posts_per_page']) ? $post_grid_options['posts_per_page'] : 10;
        $query_orderby_meta_key = isset($post_grid_options['query_orderby_meta_key']) ? $post_grid_options['query_orderby_meta_key'] : '';


        $taxonomies = !empty($post_grid_options['taxonomies']) ? $post_grid_options['taxonomies'] : array();
        $categories_relation = isset($post_grid_options['categories_relation']) ? $post_grid_options['categories_relation'] : 'OR';

        $query_args = array();


        /* ################################ Tax query ######################################*/

        $tax_query = array();

        foreach ($taxonomies as $taxonomy => $taxonomyData) {

            $terms = !empty($taxonomyData['terms']) ? $taxonomyData['terms'] : array();
            $terms_relation = !empty($taxonomyData['terms_relation']) ? $taxonomyData['terms_relation'] : 'OR';
            $checked = !empty($taxonomyData['checked']) ? $taxonomyData['checked'] : '';

            if (!empty($terms) && !empty($checked)) {
                $tax_query[] = array(
                    'taxonomy' => $taxonomy,
                    'field'    => 'term_id',
                    'terms'    => $terms,
                    'operator'    => $terms_relation,
                );
            }
        }


        $tax_query_relation = array('relation' => $categories_relation);
        $tax_query = array_merge($tax_query_relation, $tax_query);


        /* ################################ Keyword query ######################################*/

        //$keyword = isset($_GET['keyword']) ? sanitize_text_field($_GET['keyword']) : $keyword;


        /* ################################ Single pages ######################################*/


        if (is_singular()) :
            $current_post_id = get_the_ID();
            $query_args['post__not_in'] = array($current_post_id);
        endif;



        //
        //    if ( get_query_var('paged') ) {
        //        $paged = get_query_var('paged');
        //    }elseif ( get_query_var('page') ) {
        //        $paged = get_query_var('page');
        //    }else {
        //        $paged = 1;
        //    }




        if (!empty($post_types))
            $query_args['post_type'] = $post_types;

        if (!empty($post_status))
            $query_args['post_status'] = $post_status;

        if (!empty($keyword))
            $query_args['s'] = $keyword;


        if (!empty($exclude_post_id))
            $query_args['post__not_in'] = $exclude_post_id;

        if (!empty($query_order))
            $query_args['order'] = $query_order;

        if (!empty($query_orderby))
            $query_args['orderby'] = $query_orderby;

        if (!empty($query_orderby_meta_key))
            $query_args['meta_key'] = $query_orderby_meta_key;

        if (!empty($posts_per_page))
            $query_args['posts_per_page'] = (int)$posts_per_page;

        if (!empty($paged))
            $query_args['paged'] = $paged;

        if (!empty($offset))
            $query_args['offset'] = $offset + (($paged - 1) * $posts_per_page);


        if (!empty($tax_query))
            $query_args['tax_query'] = $tax_query;



        $query_args = apply_filters('post_grid_ajax_query_args', $query_args, $grid_id);
        // $query_args = apply_filters('post_grid_query_args', $query_args, $args);


        //echo '<pre>'.var_export($query_args, true).'</pre>';

        $post_grid_wp_query = new WP_Query($query_args);

        //$wp_query = $post_grid_wp_query;

        $args['options'] = $post_grid_options;
        //echo '<pre>'.var_export($post_grid_wp_query, true).'</pre>';

        $response = array();
        $pagination_prev_text = !empty($post_grid_options['pagination']['prev_text']) ? $post_grid_options['pagination']['prev_text'] : __('« Previous', 'post-grid');
        $pagination_next_text = !empty($post_grid_options['pagination']['next_text']) ? $post_grid_options['pagination']['next_text'] : __('Next »', 'post-grid');

        $loop_count = 0;



        ob_start();

        if ($post_grid_wp_query->have_posts()) :
            ob_start();
            while ($post_grid_wp_query->have_posts()) : $post_grid_wp_query->the_post();
                $post_id = get_the_ID();
                $args['post_id'] = $post_id;
                $args['loop_count'] = $loop_count;

                do_action('post_grid_loop', $args);

                $loop_count++;
            endwhile;



            $response['html'] = ob_get_clean();

            $big = 999999999; // need an unlikely integer
            $max_num_pages = $post_grid_wp_query->max_num_pages;



            $html_pagination = paginate_links(array(
                'base' => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
                'format' => '?paged=%#%',
                'current' => max(1, $paged),
                'total' => $max_num_pages,
                'prev_text'          => $pagination_prev_text,
                'next_text'          => $pagination_next_text,
            ));

            wp_reset_query();
            wp_reset_postdata();
        endif;

        $html = ob_get_clean();

        $response['pagination'] = $html_pagination;


        echo json_encode($response);

        die();
    }
}

add_action('wp_ajax_post_grid_paginate_ajax_free', 'post_grid_paginate_ajax_free');
add_action('wp_ajax_nopriv_post_grid_paginate_ajax_free', 'post_grid_paginate_ajax_free');








function post_grid_ajax_search_free()
{



    $grid_id = isset($_POST['grid_id']) ? sanitize_text_field($_POST['grid_id']) : '';

    $post_grid_options = get_post_meta($grid_id, 'post_grid_meta_options', true);


    $formData = isset($_POST['formData']) ? ($_POST['formData']) : '';


    parse_str($formData, $form_data);



    $form_data = apply_filters('_form_data', $form_data);

    $keyword = isset($form_data['keyword']) ? sanitize_text_field($form_data['keyword']) : '';




    $post_types = isset($post_grid_options['post_types']) ? $post_grid_options['post_types'] : array('post');
    $pagination_type = isset($post_grid_options['nav_bottom']['pagination_type']) ? $post_grid_options['nav_bottom']['pagination_type'] : 'ajax_pagination';

    $pagination_type =  'ajax_pagination';



    //$keyword = isset($post_grid_options['keyword']) ? $post_grid_options['keyword'] : '';
    $exclude_post_id = isset($post_grid_options['exclude_post_id']) ? $post_grid_options['exclude_post_id'] : '';
    $exclude_post_id = !empty($exclude_post_id) ? array_map('intval', explode(',', $exclude_post_id)) : array();

    $include_post_id = isset($post_grid_options['include_post_id']) ? $post_grid_options['include_post_id'] : '';
    $include_post_id = !empty($include_post_id) ? array_map('intval', explode(',', $include_post_id)) : array();

    $post_status = isset($post_grid_options['post_status']) ? $post_grid_options['post_status'] : 'publish';
    $query_order = isset($post_grid_options['query_order']) ? $post_grid_options['query_order'] : 'DESC';
    $query_orderby = isset($post_grid_options['query_orderby']) ? $post_grid_options['query_orderby'] : array('date');
    $query_orderby = implode(' ', $query_orderby);
    $offset = isset($post_grid_options['offset']) ? (int)$post_grid_options['offset'] : '';
    $posts_per_page = isset($post_grid_options['posts_per_page']) ? $post_grid_options['posts_per_page'] : 10;
    $query_orderby_meta_key = isset($post_grid_options['query_orderby_meta_key']) ? $post_grid_options['query_orderby_meta_key'] : '';


    $taxonomies = !empty($post_grid_options['taxonomies']) ? $post_grid_options['taxonomies'] : array();
    $categories_relation = isset($post_grid_options['categories_relation']) ? $post_grid_options['categories_relation'] : 'OR';

    $query_args = array();



    /* ################################ Tax query ######################################*/

    $tax_query = array();

    foreach ($taxonomies as $taxonomy => $taxonomyData) {

        $terms = !empty($taxonomyData['terms']) ? $taxonomyData['terms'] : array();
        $terms_relation = !empty($taxonomyData['terms_relation']) ? $taxonomyData['terms_relation'] : 'OR';
        $checked = !empty($taxonomyData['checked']) ? $taxonomyData['checked'] : '';

        if (!empty($terms) && !empty($checked)) {
            $tax_query[] = array(
                'taxonomy' => $taxonomy,
                'field'    => 'term_id',
                'terms'    => $terms,
                'operator'    => $terms_relation,
            );
        }
    }


    $tax_query_relation = array('relation' => $categories_relation);
    $tax_query = array_merge($tax_query_relation, $tax_query);


    /* ################################ Keyword query ######################################*/

    //$keyword = isset($_GET['keyword']) ? sanitize_text_field($_GET['keyword']) : $keyword;


    /* ################################ Single pages ######################################*/


    if (is_singular()) :
        $current_post_id = get_the_ID();
        $query_args['post__not_in'] = array($current_post_id);
    endif;




    if (get_query_var('paged')) {
        $paged = get_query_var('paged');
    } elseif (get_query_var('page')) {
        $paged = get_query_var('page');
    } else {
        $paged = 1;
    }




    if (!empty($post_types))
        $query_args['post_type'] = $post_types;

    if (!empty($post_status))
        $query_args['post_status'] = $post_status;

    if (!empty($keyword))
        $query_args['s'] = $keyword;


    if (!empty($exclude_post_id))
        $query_args['post__not_in'] = $exclude_post_id;


    if (!empty($include_post_id))
        $query_args['post__in'] = $include_post_id;


    if (!empty($query_order))
        $query_args['order'] = $query_order;

    if (!empty($query_orderby))
        $query_args['orderby'] = $query_orderby;

    if (!empty($query_orderby_meta_key))
        $query_args['meta_key'] = $query_orderby_meta_key;

    if (!empty($posts_per_page))
        $query_args['posts_per_page'] = (int)$posts_per_page;

    if (!empty($paged))
        $query_args['paged'] = $paged;

    if (!empty($offset))
        $query_args['offset'] = $offset + (($paged - 1) * $posts_per_page);


    if (!empty($tax_query))
        $query_args['tax_query'] = $tax_query;



    $query_args = apply_filters('post_grid_ajax_query_args', $query_args, $grid_id);
    // $query_args = apply_filters('post_grid_query_args', $query_args, $args);


    $post_grid_wp_query = new WP_Query($query_args);

    //$wp_query = $post_grid_wp_query;

    $args['options'] = $post_grid_options;

    $loop_count = 0;

    $response = array();



    if ($post_grid_wp_query->have_posts()) :

        ob_start();
        while ($post_grid_wp_query->have_posts()) : $post_grid_wp_query->the_post();
            $post_id = get_the_ID();
            $args['post_id'] = $post_id;
            $args['loop_count'] = $loop_count;

            do_action('post_grid_loop', $args);

            $loop_count++;

        endwhile;
        $response['html'] = ob_get_clean();

        ob_start();

        $args['grid_id'] = $grid_id;

        do_action('post_grid_pagination_' . $pagination_type, $args, $post_grid_wp_query);
        $response['pagination'] = ob_get_clean();

        wp_reset_query();
        wp_reset_postdata();
    endif;

    //$html = ob_get_clean();


    echo wp_json_encode($response);

    die();
}

add_action('wp_ajax_post_grid_ajax_search_free', 'post_grid_ajax_search_free');
add_action('wp_ajax_nopriv_post_grid_ajax_search_free', 'post_grid_ajax_search_free');