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 / ActionHooks.php
the-post-grid / app / Controllers / Hooks Last commit date
ActionHooks.php 3 years ago FilterHooks.php 3 years ago
ActionHooks.php
86 lines
1 <?php
2 /**
3 * Action Hooks class.
4 *
5 * @package RT_TPG
6 */
7
8 namespace RT\ThePostGrid\Controllers\Hooks;
9
10 // Do not allow directly accessing this file.
11 if ( ! defined( 'ABSPATH' ) ) {
12 exit( 'This script cannot be accessed directly.' );
13 }
14
15 use RT\ThePostGrid\Helpers\Fns;
16
17 /**
18 * Action Hooks class.
19 */
20 class ActionHooks {
21 /**
22 * Class init.
23 *
24 * @return void
25 */
26
27 public static function init() {
28 add_action( 'pre_get_posts', [ __CLASS__, 'category_query' ], 10 );
29 add_filter( 'post_row_actions', [ __CLASS__, 'filter_post_row_actions' ], 11, 2 );
30 add_filter( 'page_row_actions', [ __CLASS__, 'filter_post_row_actions' ], 11, 2 );
31 add_action( 'rttpg_daily_scheduled_events', [ __CLASS__, 'rttpg_daily_scheduled_events' ] );
32 }
33
34 /**
35 * Category query
36 *
37 * @param object $query Query.
38 *
39 * @return void
40 */
41 public static function category_query( $query ) {
42 if ( ! is_admin() && $query->is_main_query() && is_category() ) {
43 $settings = get_option( rtTPG()->options['settings'] );
44 $sc_id = isset( $settings['template_category'] ) ? absint( $settings['template_category'] ) : 0;
45
46 if ( $sc_id ) {
47 $posts_per_page = $sc_id ? absint( get_post_meta( $sc_id, 'posts_per_page', true ) ) : 0;
48 $pagination = $sc_id ? get_post_meta( $sc_id, 'pagination', true ) : false;
49 $posts_loading_type = $sc_id ? get_post_meta( $sc_id, 'posts_loading_type', true ) : '';
50
51 if ( $pagination && 'pagination' === $posts_loading_type && $posts_per_page ) {
52 $query->set( 'posts_per_page', $posts_per_page );
53 }
54 }
55 }
56 }
57
58 public static function filter_post_row_actions( $actions, $post ) {
59 global $pagenow;
60 if ( 'edit.php' === $pagenow ) {
61 global $post;
62 $new_items['edit_with_elementor'] = sprintf(
63 '<span style="color:#135e96">ID: %s</span>',
64 $post->ID
65 );
66 $actions = array_merge( $actions, $new_items );
67 }
68
69 return $actions;
70 }
71
72 public static function rttpg_daily_scheduled_events() {
73 try {
74 global $wpdb;
75 $expired = $wpdb->get_col( "SELECT option_name FROM {$wpdb->options} WHERE option_name LIKE '_transient_timeout%' AND option_value < UNIX_TIMESTAMP()" );
76
77 foreach ( $expired as $transient ) {
78 $key = str_replace('_transient_timeout_tpg_cache_', 'tpg_cache_', $transient);
79 delete_transient( $key );
80 }
81
82 } catch ( \Exception $e ) {
83
84 }
85 }
86 }