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
<?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);
}
}
}