PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
2.0.25 2.0.24 2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / traits / class-repository-helpers.php
advanced-ads / includes / traits Last commit date
class-entity.php 1 year ago class-extras.php 1 year ago class-repository-helpers.php 2 days ago class-wrapper.php 1 week ago index.php 2 years ago
class-repository-helpers.php
98 lines
1 <?php
2 /**
3 * Shared repository helper methods.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 2.0.24
8 */
9
10 namespace AdvancedAds\Traits;
11
12 defined( 'ABSPATH' ) || exit;
13
14 /**
15 * Repository helpers for repeated internal repository logic.
16 */
17 trait Repository_Helpers {
18
19 /**
20 * Normalize a list of entity IDs to positive integers.
21 *
22 * @param int[] $ids Entity IDs.
23 *
24 * @return int[]
25 */
26 protected function normalize_entity_ids( array $ids ): array {
27 return array_values( array_filter( array_map( 'absint', $ids ) ) );
28 }
29
30 /**
31 * Convert cached summaries into an ID => title dropdown map.
32 *
33 * @param array<int, array{id: int, title: string}> $summaries Entity summaries.
34 *
35 * @return array<int, string>
36 */
37 protected function summaries_to_dropdown( array $summaries ): array {
38 if ( empty( $summaries ) ) {
39 return [];
40 }
41
42 return wp_list_pluck( $summaries, 'title', 'id' );
43 }
44
45 /**
46 * Hydrate post-backed entities for the given post IDs.
47 *
48 * @param int[] $post_ids Post IDs.
49 * @param callable $loader Loader callback receiving the post ID.
50 * @param bool $skip_invalid Whether to skip falsey loader results.
51 *
52 * @return array<int, mixed>
53 */
54 protected function hydrate_post_entities( array $post_ids, callable $loader, bool $skip_invalid = false ): array {
55 $post_ids = $this->normalize_entity_ids( $post_ids );
56
57 if ( ! empty( $post_ids ) ) {
58 _prime_post_caches( $post_ids, false, true );
59 }
60
61 $entities = [];
62 foreach ( $post_ids as $post_id ) {
63 $entity = $loader( $post_id );
64
65 if ( $skip_invalid && ( false === $entity || null === $entity ) ) {
66 continue;
67 }
68
69 $entities[ $post_id ] = $entity;
70 }
71
72 return $entities;
73 }
74
75 /**
76 * Update only the modified timestamps for a post-backed entity.
77 *
78 * @param int $post_id Post ID.
79 *
80 * @return void
81 */
82 protected function touch_post_modified_time( int $post_id ): void {
83 global $wpdb;
84
85 $wpdb->update( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery
86 $wpdb->posts,
87 [
88 'post_modified' => current_time( 'mysql' ),
89 'post_modified_gmt' => current_time( 'mysql', 1 ),
90 ],
91 [
92 'ID' => $post_id,
93 ]
94 );
95 clean_post_cache( $post_id );
96 }
97 }
98