PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / 7.2.9
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid v7.2.9
7.9.3 7.9.2 trunk 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.2.0 4.2.1 4.2.2 4.2.3 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 6.0.0 7.0.0 7.0.1 7.0.2 7.1.0 7.2.0 7.2.1 7.2.10 7.2.11 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.8 7.2.9 7.3.0 7.3.1 7.4.0 7.4.1 7.4.2 7.4.3 7.5.0 7.6.0 7.6.1 7.7.0 7.7.1 7.7.10 7.7.11 7.7.12 7.7.13 7.7.14 7.7.15 7.7.16 7.7.17 7.7.18 7.7.19 7.7.2 7.7.20 7.7.21 7.7.22 7.7.3 7.7.4 7.7.5 7.7.6 7.7.7 7.7.8 7.7.9 7.8.0 7.8.1 7.8.2 7.8.3 7.8.4 7.8.5 7.8.6 7.8.7 7.8.8 7.8.9 7.9.0 7.9.1
the-post-grid / app / Controllers / Hooks / FilterHooks.php
the-post-grid / app / Controllers / Hooks Last commit date
ActionHooks.php 3 years ago FilterHooks.php 3 years ago
FilterHooks.php
207 lines
1 <?php
2 /**
3 * Filter Hooks class.
4 *
5 * @package RT_TPG
6 */
7
8 namespace RT\ThePostGrid\Controllers\Hooks;
9
10 use Cassandra\Varint;
11 use RT\ThePostGrid\Helpers\Fns;
12
13 // Do not allow directly accessing this file.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit( 'This script cannot be accessed directly.' );
16 }
17
18 /**
19 * Filter Hooks class.
20 *
21 * @package RT_TPG
22 */
23 class FilterHooks {
24 /**
25 * Class init
26 *
27 * @return void
28 */
29 public static function init() {
30 add_filter( 'tpg_author_arg', [ __CLASS__, 'filter_author_args' ], 10 );
31 add_filter( 'plugin_row_meta', [ __CLASS__, 'plugin_row_meta' ], 10, 2 );
32
33 $settings = get_option( 'rt_the_post_grid_settings' );
34
35 if ( isset( $settings['show_acf_details'] ) && $settings['show_acf_details'] ) {
36 add_filter( 'the_content', [ __CLASS__, 'tpg_acf_content_filter' ] );
37 }
38
39 add_filter( 'wp_head', [ __CLASS__, 'set_post_view_count' ], 9999 );
40 add_filter( 'body_class', [ __CLASS__, 'body_classes' ] );
41 add_filter( 'admin_body_class', [ __CLASS__, 'admin_body_class' ] );
42 add_filter( 'wp_kses_allowed_html', [ __CLASS__, 'tpg_custom_wpkses_post_tags' ], 10, 2 );
43 }
44
45 /**
46 * Add body classes
47 *
48 * @param $classes
49 *
50 * @return mixed
51 */
52 public static function body_classes( $classes ) {
53 $icon_font = Fns::tpg_option( 'tpg_icon_font' );
54 $classes[] = 'rttpg';
55 $classes[] = 'rttpg-' . RT_THE_POST_GRID_VERSION;
56 $classes[] = 'radius-frontend rttpg-body-wrap';
57 if('fontawesome' !== $icon_font){
58 $classes[] = 'rttpg-flaticon';
59 }
60
61 return $classes;
62 }
63
64 /**
65 * Admin body class
66 *
67 * @param string $classes Classes.
68 *
69 * @return string
70 */
71
72 public static function admin_body_class( $classes ) {
73 $settings = get_option( 'rt_the_post_grid_settings' );
74 global $pagenow;
75
76 if ( isset( $settings['tpg_block_type'] ) && in_array( $settings['tpg_block_type'], [
77 'elementor',
78 'shortcode'
79 ] ) ) {
80 $classes .= ' tpg-block-type-elementor-or-shortcode';
81 }
82
83 //check if the current page is post.php and if the post parameteris set
84 if ( $pagenow === 'post.php' && isset( $_GET['post'] ) ) {
85
86 if ( rtTPG()->hasPro() ) {
87 $classes .= ' the-post-grid the-post-grid-pro';
88 } else {
89 $classes .= ' the-post-grid';
90 }
91
92 $classes .= ' radius-editor rttpg-body-wrap';
93 }
94
95 return $classes;
96 }
97
98 /**
99 * @param $tags
100 * @param $context
101 *
102 * @return mixed
103 */
104 public static function tpg_custom_wpkses_post_tags( $tags, $context ) {
105
106 if ( 'post' === $context ) {
107 $tags['iframe'] = [
108 'src' => true,
109 'height' => true,
110 'width' => true,
111 'frameborder' => true,
112 'allowfullscreen' => true,
113 ];
114 $tags['input'] = [
115 'type' => true,
116 'class' => true,
117 'placeholder' => true,
118 ];
119 $tags['style'] = [
120 'src' => true,
121 ];
122 }
123
124 return $tags;
125 }
126
127 /**
128 * Set view count
129 *
130 * @param string $content Content.
131 *
132 * @return string
133 */
134 public static function set_post_view_count( $content ) {
135 if ( is_single() ) {
136 $pId = get_the_ID();
137 Fns::update_post_views_count( $pId );
138 }
139
140 return $content;
141 }
142
143 /**
144 * Filter author args.
145 *
146 * @param array $args Args.
147 *
148 * @return array
149 */
150 public static function filter_author_args( $args ) {
151 $defaults = [ 'role__in' => [ 'administrator', 'editor', 'author' ] ];
152
153 return wp_parse_args( $args, $defaults );
154 }
155
156 /**
157 * Add plugin row meta
158 *
159 * @param array $links Links.
160 * @param string $file File.
161 *
162 * @return array
163 */
164 public static function plugin_row_meta( $links, $file ) {
165 if ( $file == RT_THE_POST_GRID_PLUGIN_ACTIVE_FILE_NAME ) {
166 $report_url = 'https://www.radiustheme.com/contact/';
167 $row_meta['issues'] = sprintf(
168 '%2$s <a target="_blank" href="%1$s">%3$s</a>',
169 esc_url( $report_url ),
170 esc_html__( 'Facing issue?', 'the-post-grid' ),
171 '<span style="color: red">' . esc_html__( 'Please open a support ticket.', 'the-post-grid' ) . '</span>'
172 );
173
174 return array_merge( $links, $row_meta );
175 }
176
177 return (array) $links;
178 }
179
180 /**
181 * ACF content filter
182 *
183 * @param string $content Content.
184 *
185 * @return string
186 */
187 public static function tpg_acf_content_filter( $content ) {
188 // Check if we're inside the main loop in a post or page.
189 if ( is_single() && in_the_loop() && is_main_query() && rtTPG()->hasPro() ) {
190 $settings = get_option( rtTPG()->options['settings'] );
191
192 $data = [
193 'show_acf' => isset( $settings['show_acf_details'] ) && $settings['show_acf_details'] ? 'show' : false,
194 'cf_group' => isset( $settings['cf_group_details'] ) ? $settings['cf_group_details'] : [],
195 'cf_hide_empty_value' => isset( $settings['cf_hide_empty_value_details'] ) ? $settings['cf_hide_empty_value_details'] : false,
196 'cf_show_only_value' => isset( $settings['cf_show_only_value_details'] ) ? $settings['cf_show_only_value_details'] : false,
197 'cf_hide_group_title' => isset( $settings['cf_hide_group_title_details'] ) ? $settings['cf_hide_group_title_details'] : false,
198 ];
199
200 return $content . Fns::tpg_get_acf_data_elementor( $data, null, false );
201 }
202
203 return $content;
204 }
205
206 }
207