PluginProbe
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets / 4.1.12
Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets v4.1.12
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 / admin / admin-api-biggopti.php

admin-api-biggopti.php in Ultimate Post Kit – Elementor Post Grid, Post Carousel, Post Slider & Blog Layout Widgets 4.1.12, at admin/admin-api-biggopti.php

71 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace UltimatePostKit;
4
5 /**
6 * Admin Api Biggopties class
7 */
8 class AdminApiBiggopties {
9
10 private static $instance;
11
12 public static function get_instance() {
13 if (!isset(self::$instance)) {
14 self::$instance = new self;
15 }
16 return self::$instance;
17 }
18
19 public function __construct() {
20 add_action('wp_ajax_upk_admin_api_biggopti_dismiss', [$this, 'upk_admin_api_biggopti_dismiss']);
21 }
22
23 /**
24 * Dismiss Admin API Biggopti.
25 */
26 public function upk_admin_api_biggopti_dismiss() {
27 $nonce = (isset($_POST['_wpnonce'])) ? sanitize_text_field($_POST['_wpnonce']) : '';
28 $display_id = (isset($_POST['display_id'])) ? sanitize_text_field($_POST['display_id']) : '';
29 $id = (isset($_POST['id'])) ? esc_attr($_POST['id']) : '';
30 $meta = (isset($_POST['meta'])) ? esc_attr($_POST['meta']) : '';
31
32 if ( ! wp_verify_nonce($nonce, 'ultimate-post-kit') ) {
33 wp_send_json_error();
34 }
35
36 if ( ! current_user_can('manage_options') ) {
37 wp_send_json_error();
38 }
39
40 // Prefer display_id; fallback: extract from id (bdt-admin-api-biggopti-{display_id})
41 if (empty($display_id) && !empty($id)) {
42 $prefix = 'bdt-admin-api-biggopti-';
43 if (strpos($id, $prefix) === 0) {
44 $display_id = substr($id, strlen($prefix));
45 } else {
46 $display_id = $id;
47 }
48 }
49
50 /**
51 * Valid inputs?
52 */
53 if (!empty($display_id)) {
54 if ('user' === $meta) {
55 $user_key = 'bdt-admin-api-biggopti-' . $display_id;
56 update_user_meta(get_current_user_id(), $user_key, true);
57 } else {
58 // Save to options table only - display_id based, no end-time expiration
59 $dismissals_option = get_option('bdt_biggopti_dismissals', []);
60 $dismissals_option[$display_id] = ['dismissed_at' => time()];
61 update_option('bdt_biggopti_dismissals', $dismissals_option, false);
62 }
63
64 wp_send_json_success();
65 }
66
67 wp_send_json_error();
68 }
69 }
70
71 AdminApiBiggopties::get_instance();