esc_html__('Error: Invalid nonce verification.', 'csf')));
}
ob_start();
$icon_library = (apply_filters('csf_fa4', false)) ? 'fa4' : 'fa5';
CSF::include_plugin_file('fields/icon/' . $icon_library . '-icons.php');
$icon_lists = apply_filters('csf_field_icon_add_icons', csf_get_default_icons());
if (!empty($icon_lists)) {
foreach ($icon_lists as $list) {
echo (count($icon_lists) >= 2) ? '
' . esc_attr($list['title']) . '
' : '';
foreach ($list['icons'] as $icon) {
echo '';
}
}
} else {
echo '' . esc_html__('No data available.', 'csf') . '
';
}
$content = ob_get_clean();
wp_send_json_success(array('content' => $content));
}
add_action('wp_ajax_csf-get-icons', 'csf_get_icons');
}
/**
*
* Export
*
* @since 1.0.0
* @version 1.0.0
*
*/
if (!function_exists('csf_export')) {
function csf_export()
{
$nonce = (!empty($_GET['nonce'])) ? sanitize_text_field(wp_unslash($_GET['nonce'])) : '';
$unique = (!empty($_GET['unique'])) ? sanitize_text_field(wp_unslash($_GET['unique'])) : '';
if (!wp_verify_nonce($nonce, 'csf_backup_nonce')) {
die(esc_html__('Error: Invalid nonce verification.', 'csf'));
}
if (empty($unique)) {
die(esc_html__('Error: Invalid key.', 'csf'));
}
// Export
header('Content-Type: application/json');
header('Content-disposition: attachment; filename=backup-' . gmdate('d-m-Y') . '.json');
header('Content-Transfer-Encoding: binary');
header('Pragma: no-cache');
header('Expires: 0');
echo json_encode(get_option($unique));
die();
}
add_action('wp_ajax_csf-export', 'csf_export');
}
/**
*
* Import Ajax
*
* @since 1.0.0
* @version 1.0.0
*
*/
if (!function_exists('csf_import_ajax')) {
function csf_import_ajax()
{
$nonce = (!empty($_POST['nonce'])) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
$unique = (!empty($_POST['unique'])) ? sanitize_text_field(wp_unslash($_POST['unique'])) : '';
$data = (!empty($_POST['data'])) ? wp_kses_post_deep(json_decode(wp_unslash(trim($_POST['data'])), true)) : array();
if (!wp_verify_nonce($nonce, 'csf_backup_nonce')) {
wp_send_json_error(array('error' => esc_html__('Error: Invalid nonce verification.', 'csf')));
}
if (empty($unique)) {
wp_send_json_error(array('error' => esc_html__('Error: Invalid key.', 'csf')));
}
if (empty($data) || !is_array($data)) {
wp_send_json_error(array('error' => esc_html__('Error: The response is not a valid JSON response.', 'csf')));
}
// Success
update_option($unique, $data);
wp_send_json_success();
}
add_action('wp_ajax_csf-import', 'csf_import_ajax');
}
/**
*
* Reset Ajax
*
* @since 1.0.0
* @version 1.0.0
*
*/
if (!function_exists('csf_reset_ajax')) {
function csf_reset_ajax()
{
$nonce = (!empty($_POST['nonce'])) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
$unique = (!empty($_POST['unique'])) ? sanitize_text_field(wp_unslash($_POST['unique'])) : '';
if (!wp_verify_nonce($nonce, 'csf_backup_nonce')) {
wp_send_json_error(array('error' => esc_html__('Error: Invalid nonce verification.', 'csf')));
}
// Success
delete_option($unique);
wp_send_json_success();
}
add_action('wp_ajax_csf-reset', 'csf_reset_ajax');
}
/**
*
* Chosen Ajax
*
* @since 1.0.0
* @version 1.0.0
*
*/
if (!function_exists('csf_chosen_ajax')) {
function csf_chosen_ajax()
{
$nonce = (!empty($_POST['nonce'])) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
$type = (!empty($_POST['type'])) ? sanitize_text_field(wp_unslash($_POST['type'])) : '';
$term = (!empty($_POST['term'])) ? sanitize_text_field(wp_unslash($_POST['term'])) : '';
$query = (!empty($_POST['query_args'])) ? wp_kses_post_deep($_POST['query_args']) : array();
if (!wp_verify_nonce($nonce, 'csf_chosen_ajax_nonce')) {
wp_send_json_error(array('error' => esc_html__('Error: Invalid nonce verification.', 'csf')));
}
if (empty($type) || empty($term)) {
wp_send_json_error(array('error' => esc_html__('Error: Invalid term ID.', 'csf')));
}
$capability = apply_filters('csf_chosen_ajax_capability', 'manage_options');
if (!current_user_can($capability)) {
wp_send_json_error(array('error' => esc_html__('Error: You do not have permission to do that.', 'csf')));
}
// Success
$options = CSF_Fields::field_data($type, $term, $query);
wp_send_json_success($options);
}
add_action('wp_ajax_csf-chosen', 'csf_chosen_ajax');
}