PluginProbe
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets / 4.5.3
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets v4.5.3
4.5.4 4.2.1 4.2.2 4.2.3 4.5.0 4.5.2 4.5.3 4.2.0 4.1.18 4.1.17 4.1.16 4.1.15 4.1.14 4.1.13 4.1.12 4.1.11 4.1.10 4.1.9 4.1.8 4.0.9 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 All 146 releases
ultimate-post-kit / modules / amox-grid / module.php

module.php in Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets 4.5.3, at modules/amox-grid/module.php

175 lines 6.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace UltimatePostKit\Modules\AmoxGrid;
3 use UltimatePostKit\Traits\Global_Widget_Functions;
4
5 use UltimatePostKit\Base\Ultimate_Post_Kit_Module_Base;
6 use UltimatePostKit\Utils;
7
8 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
9
10 class Module extends Ultimate_Post_Kit_Module_Base {
11
12 use Global_Widget_Functions;
13
14 public function __construct() {
15
16 parent::__construct();
17
18 add_action( 'wp_ajax_nopriv_upk_amox_grid_loadmore_posts', [ $this, 'callback_ajax_loadmore_posts' ] );
19 add_action( 'wp_ajax_upk_amox_grid_loadmore_posts', [ $this, 'callback_ajax_loadmore_posts' ] );
20 }
21
22 public function get_name() {
23 return 'amox-grid';
24 }
25
26 public function get_widgets() {
27
28 $widgets = [
29 'Amox_Grid',
30 ];
31
32 return $widgets;
33 }
34
35 public function callback_ajax_loadmore_posts() {
36 // Verify the front-end nonce (sent by UltimatePostKitConfig.nonce) before
37 // processing this public load-more request.
38 if ( ! check_ajax_referer( 'upk-site', 'nonce', false ) ) {
39 wp_send_json_error( array( 'message' => esc_html__( 'Security check failed.', 'ultimate-post-kit' ) ), 403 );
40 }
41
42
43 $settings = [];
44
45 if ( isset( $_POST['settings'] ) && is_array( $_POST['settings'] ) ) {
46 $settings = map_deep( wp_unslash( $_POST['settings'] ), 'sanitize_text_field' );
47 }
48
49 $post_type = $settings['posts_source'] ?? 'post';
50
51 $settings = array_merge(
52 [
53 'posts_source' => 'post',
54 'posts_orderby' => 'date',
55 'posts_order' => 'DESC',
56 'posts_ignore_sticky_posts' => 'no',
57 'posts_only_with_featured_image' => 'no',
58 'posts_select_date' => '',
59 'posts_exclude_by' => [],
60 'posts_include_by' => [],
61 'posts_per_page' => isset( $_POST['per_page'] ) ? absint( $_POST['per_page'] ) : 0,
62 'posts_offset' => isset( $_POST['offset'] ) ? absint( $_POST['offset'] ) : 0,
63 ],
64 $settings
65 );
66
67 $ajaxposts = $this->query_args( $settings );
68
69 ob_start();
70 $found_posts = false;
71
72 if ( $ajaxposts->have_posts() ) {
73
74 $i = 0;
75 while ( $ajaxposts->have_posts() ) {
76 $ajaxposts->the_post();
77 $found_posts = true;
78 $i++;
79
80 $title = get_the_title();
81 $post_link = esc_url( get_permalink() );
82 $meta_sep = $settings['meta_separator'] ?? '.';
83 $title_tag = Utils::get_valid_html_tag($settings['title_tags']);
84
85 ?>
86 <div <?php if ( ! empty( $settings['global_link'] ) && $settings['global_link'] === 'yes' ) { printf( 'onclick="window.open(\'%s\', \'_self\')"', esc_url( $post_link ) ); } ?> class="upk-item">
87 <div class="upk-img-wrap">
88 <?php $this->render_image( get_post_thumbnail_id(), 'large' ); ?>
89 </div>
90
91 <div class="upk-content">
92 <?php if ( $settings['show_category'] === 'yes' ) : ?>
93 <div class="upk-category">
94 <?php echo wp_kses_post( upk_get_category( $post_type ) ); ?>
95 </div>
96 <?php endif; ?>
97
98 <?php if ( $settings['show_title'] === 'yes' ) : ?>
99 <<?php echo esc_attr( $title_tag ); ?> class="upk-title">
100 <a
101 href="<?php echo esc_url( $post_link ); ?>"
102 title="<?php echo esc_attr( $title ); ?>"
103 class="title-animation-<?php echo esc_attr( $settings['title_style'] ?? 'underline' ); ?>"
104 <?php echo $settings['upk_link_new_tab'] === 'yes' ? 'target="_blank"' : '' ?>
105 >
106 <?php echo esc_html( $title ); ?>
107 </a>
108 </<?php echo esc_attr( $title_tag ); ?>>
109 <?php endif; ?>
110
111 <?php if (
112 $settings['show_comments'] === 'yes' ||
113 $settings['show_date'] === 'yes' ||
114 $settings['show_reading_time'] === 'yes'
115 ) : ?>
116 <div class="upk-meta upk-flex-inline upk-flex-middle">
117 <?php if ( $settings['show_date'] === 'yes' ) : ?>
118 <div class="upk-date">
119 <?php
120 if ( $settings['show_date'] === 'yes' && $settings['human_diff_time'] !== 'yes' ) {
121 echo esc_html( get_the_date() );
122 }
123 if ( $settings['human_diff_time'] === 'yes' ) {
124 echo esc_html( ultimate_post_kit_post_time_diff( $settings['human_diff_time_short'] !== 'yes' ? 'short' : '' ) );
125 }
126 ?>
127 </div>
128
129 <?php if ( $settings['show_time'] === 'yes' ) : ?>
130 <div class="upk-post-time">
131 <i class="upk-icon-clock" aria-hidden="true"></i>
132 <?php echo esc_html( get_the_time() ); ?>
133 </div>
134 <?php endif; ?>
135 <?php endif; ?>
136
137 <?php if (
138 function_exists( '_is_upk_pro_activated' ) &&
139 _is_upk_pro_activated() &&
140 function_exists( 'ultimate_post_kit_reading_time' ) &&
141 ( $settings['show_reading_time'] ?? '' ) === 'yes'
142 ) : ?>
143 <div class="upk-reading-time" data-separator="<?php echo esc_html( $meta_sep ); ?>">
144 <?php echo esc_html( ultimate_post_kit_reading_time( get_the_content(), $settings['avg_reading_speed'], $settings['hide_seconds'] ?? 'no', $settings['hide_minutes'] ?? 'no' ) ); ?>
145 </div>
146 <?php endif; ?>
147
148 <?php if ( $settings['show_comments'] === 'yes' ) : ?>
149 <div data-separator="<?php echo esc_html( $meta_sep ); ?>">
150 <div class="upk-comments upk-flex upk-flex-middle">
151 <i class="upk-icon-post-comments" aria-hidden="true"></i>
152 <span><?php echo esc_html( $this->upk_get_localized_comment_count( get_the_ID() ) ); ?></span>
153 </div>
154 </div>
155 <?php endif; ?>
156 </div>
157 <?php endif; ?>
158 </div>
159 </div>
160 <?php
161 }
162 }
163
164 wp_reset_postdata();
165 $markup = ob_get_clean();
166
167 wp_send_json(
168 [
169 'success' => $found_posts,
170 'markup' => $found_posts ? $markup : esc_html__( 'No more found', 'ultimate-post-kit' ),
171 ]
172 );
173 }
174 }
175