?? GreyFile — Mystic File Browser

Current path: home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Admin/AjaxRequests/



?? Go up: /home/webdevt/www/demo2/wp-content/plugins/divi-contact-form-helper/d5/server/Admin

?? Viewing: AdminAjaxRequests.php

<?php

namespace KS_PAC_DCFH\Admin\AjaxRequests;

if (!defined('ABSPATH')) {
    exit;
}

class AdminAjaxRequests
{
    public function load(): void
    {
        add_action('wp_ajax_terms_list', [$this, 'maybe_get_post_terms']);
        add_action('wp_ajax_meta_keys', [$this, 'maybe_get_post_meta_keys']);
    }

    public function maybe_get_post_terms(): void
    {
        if (!check_ajax_referer('dcfh_ad_ajax_req', '_wpnonce')) {
            wp_send_json_error(esc_html__('The security check failed due to an invalid nonce. Please try again.', 'divi-contact-form-helper'));
        }
        $post_type = isset($_REQUEST['post_type']) ? sanitize_text_field($_REQUEST['post_type']) : null;
        if ('' !== $post_type) {
            if ($post_type !== 'page') {
                $taxonomies = get_object_taxonomies($post_type);
                $taxonomies_new = [];
                foreach ($taxonomies as $taxonomy) {
                    if (!strpos($taxonomy, 'tag')) {
                        $taxonomies_new[] = $taxonomy;
                    }
                }
                $terms = get_terms([
                    'taxonomy' => $taxonomies_new,
                    'hide_empty' => false,
                ]);
                if (!is_wp_error($terms)) {
                    $output = "";
                    foreach ($terms as $term) {
                        $output .= "<option value=\"$term->term_id\">".$term->name."</option>";
                    }
                    wp_send_json_success($output);
                }
            } else {
                wp_send_json_error('No data');
            }
        }
    }

    public function maybe_get_post_meta_keys(): void
    {
        if (!check_ajax_referer('dcfh_ad_ajax_req', '_wpnonce')) {
            wp_send_json_error(esc_html__('The security check failed due to an invalid nonce. Please try again.', 'divi-contact-form-helper'));
        }
        $search_meta = isset($_POST['search_meta']) ? sanitize_text_field($_POST['search_meta']) : null;
        if ('' !== $search_meta) {
            $list = [];
            global $wpdb;
            // phpcs:disable
            $meta_keys = $wpdb->get_results($wpdb->prepare(
                "SELECT DISTINCT meta_key 
                FROM $wpdb->postmeta 
                WHERE meta_key LIKE %s 
                AND meta_key NOT LIKE '%_pwh_dcfh_%' 
                AND meta_key NOT LIKE '%_edit_%' 
                AND meta_key NOT LIKE '%wp%' 
                AND meta_key NOT LIKE '%_menu%' 
                AND meta_key NOT LIKE '%_et_%' 
                AND meta_key NOT LIKE '%_global_%' 
                AND meta_key NOT LIKE '%_thumbnail%'",
                '%'.$wpdb->esc_like($search_meta).'%'
            ));
            // phpcs:enable
            if (!empty($meta_keys)) {
                foreach ($meta_keys as $meta_key) {
                    $list[] = $meta_key->meta_key;
                }
            }
            array_filter($list, 'strlen');
            wp_send_json_success($list);
        }
    }
}


??

??