PluginProbe ʕ •ᴥ•ʔ
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid / 7.0.2
The Post Grid – Shortcode, Gutenberg Blocks and Elementor Addon for Post Grid v7.0.2
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
203 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 $classes[] = 'rttpg';
54 $classes[] = 'rttpg-' . RT_THE_POST_GRID_VERSION;
55 $classes[] = 'radius-frontend rttpg-body-wrap';
56
57 return $classes;
58 }
59
60 /**
61 * Admin body class
62 *
63 * @param string $classes Classes.
64 *
65 * @return string
66 */
67
68 public static function admin_body_class( $classes ) {
69 $settings = get_option( 'rt_the_post_grid_settings' );
70 global $pagenow;
71
72 if ( isset( $settings['tpg_block_type'] ) && in_array( $settings['tpg_block_type'], [
73 'elementor',
74 'shortcode'
75 ] ) ) {
76 $classes .= ' tpg-block-type-elementor-or-shortcode';
77 }
78
79 //check if the current page is post.php and if the post parameteris set
80 if ( $pagenow === 'post.php' && isset( $_GET['post'] ) ) {
81
82 if ( rtTPG()->hasPro() ) {
83 $classes .= ' the-post-grid the-post-grid-pro';
84 } else {
85 $classes .= ' the-post-grid';
86 }
87
88 $classes .= ' radius-editor rttpg-body-wrap';
89 }
90
91 return $classes;
92 }
93
94 /**
95 * @param $tags
96 * @param $context
97 *
98 * @return mixed
99 */
100 public static function tpg_custom_wpkses_post_tags( $tags, $context ) {
101
102 if ( 'post' === $context ) {
103 $tags['iframe'] = [
104 'src' => true,
105 'height' => true,
106 'width' => true,
107 'frameborder' => true,
108 'allowfullscreen' => true,
109 ];
110 $tags['input'] = [
111 'type' => true,
112 'class' => true,
113 'placeholder' => true,
114 ];
115 $tags['style'] = [
116 'src' => true,
117 ];
118 }
119
120 return $tags;
121 }
122
123 /**
124 * Set view count
125 *
126 * @param string $content Content.
127 *
128 * @return string
129 */
130 public static function set_post_view_count( $content ) {
131 if ( is_single() ) {
132 $pId = get_the_ID();
133 Fns::update_post_views_count( $pId );
134 }
135
136 return $content;
137 }
138
139 /**
140 * Filter author args.
141 *
142 * @param array $args Args.
143 *
144 * @return array
145 */
146 public static function filter_author_args( $args ) {
147 $defaults = [ 'role__in' => [ 'administrator', 'editor', 'author' ] ];
148
149 return wp_parse_args( $args, $defaults );
150 }
151
152 /**
153 * Add plugin row meta
154 *
155 * @param array $links Links.
156 * @param string $file File.
157 *
158 * @return array
159 */
160 public static function plugin_row_meta( $links, $file ) {
161 if ( $file == RT_THE_POST_GRID_PLUGIN_ACTIVE_FILE_NAME ) {
162 $report_url = 'https://www.radiustheme.com/contact/';
163 $row_meta['issues'] = sprintf(
164 '%2$s <a target="_blank" href="%1$s">%3$s</a>',
165 esc_url( $report_url ),
166 esc_html__( 'Facing issue?', 'the-post-grid' ),
167 '<span style="color: red">' . esc_html__( 'Please open a support ticket.', 'the-post-grid' ) . '</span>'
168 );
169
170 return array_merge( $links, $row_meta );
171 }
172
173 return (array) $links;
174 }
175
176 /**
177 * ACF content filter
178 *
179 * @param string $content Content.
180 *
181 * @return string
182 */
183 public static function tpg_acf_content_filter( $content ) {
184 // Check if we're inside the main loop in a post or page.
185 if ( is_single() && in_the_loop() && is_main_query() && rtTPG()->hasPro() ) {
186 $settings = get_option( rtTPG()->options['settings'] );
187
188 $data = [
189 'show_acf' => isset( $settings['show_acf_details'] ) && $settings['show_acf_details'] ? 'show' : false,
190 'cf_group' => isset( $settings['cf_group_details'] ) ? $settings['cf_group_details'] : [],
191 'cf_hide_empty_value' => isset( $settings['cf_hide_empty_value_details'] ) ? $settings['cf_hide_empty_value_details'] : false,
192 'cf_show_only_value' => isset( $settings['cf_show_only_value_details'] ) ? $settings['cf_show_only_value_details'] : false,
193 'cf_hide_group_title' => isset( $settings['cf_hide_group_title_details'] ) ? $settings['cf_hide_group_title_details'] : false,
194 ];
195
196 return $content . Fns::tpg_get_acf_data_elementor( $data, null, false );
197 }
198
199 return $content;
200 }
201
202 }
203