File Manager / wp-content Search Upload New Item Settings File "db5.php" Full path: /home1/epichome/public_html/wp-content/db5.php File size: 60.67 B (60.67 KB bytes) MIME-type: text/x-php Charset: utf-8 Download Open Edit Advanced Editor Back
<?php
/**
* Class that handles all AJAX calls
*
* @since 3.0
*/
class Visual_Form_Builder_Admin_AJAX {
/**
* [__construct description]
*/
public function __construct() {
add_action( 'wp_ajax_visual_form_builder_sort_field', array( $this, 'sort_field' ) );
add_action( 'wp_ajax_visual_form_builder_create_field', array( $this, 'create_field' ) );
add_action( 'wp_ajax_visual_form_builder_delete_field', array( $this, 'delete_field' ) );
add_action( 'wp_ajax_visual_form_builder_form_settings', array( $this, 'form_settings' ) );
}
/**
* Sort fields
*
* @return void
*/
public function sort_field() {
global $wpdb;
$data = array();
if ( isset( $_POST['order'] ) && ! empty( $_POST['order'] ) ) {
foreach ( wp_unslash( $_POST['order'] ) as $k ) {
if ( 'root' !== $k['item_id'] && ! empty( $k['item_id'] ) ) {
$data[] = array(
'field_id' => $k['item_id'],
'parent' => $k['parent_id'],
);
}
}
}
foreach ( $data as $k => $v ) {
// Update each field with it's new sequence and parent ID.
$wpdb->update(
VFB_WP_FIELDS_TABLE_NAME,
array(
'field_sequence' => $k,
'field_parent' => $v['parent'],
),
array(
'field_id' => $v['field_id'],
),
'%d'
);
}
die( 1 );
}
/**
* Create field by click
*
* @return void
*/
public function create_field() {
global $wpdb;
$data = array();
$field_options = $field_validation = '';
if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {
foreach ( wp_unslash( $_POST['data'] ) as $k ) {
$data[ $k['name'] ] = $k['value'];
}
}
check_ajax_referer( 'create-field-' . $data['form_id'], 'nonce' );
$form_id = absint( $data['form_id'] );
$field_key = isset( $_POST['field_type'] ) ? sanitize_title( wp_unslash( $_POST['field_type'] ) ) : '';
$field_name = isset( $_POST['field_type'] ) ? sanitize_text_field( wp_unslash( $_POST['field_type'] ) ) : '';
$field_type = isset( $_POST['field_type'] ) ? strtolower( sanitize_title( wp_unslash( $_POST['field_type'] ) ) ) : '';
// Set defaults for validation.
switch ( $field_type ) {
case 'select':
case 'radio':
case 'checkbox':
$field_options = serialize( array( 'Option 1', 'Option 2', 'Option 3' ) );
break;
case 'email':
case 'url':
case 'phone':
$field_validation = $field_type;
break;
case 'currency':
$field_validation = 'number';
break;
case 'number':
$field_validation = 'digits';
break;
case 'time':
$field_validation = 'time-12';
break;
case 'file-upload':
$field_options = serialize( array( 'png|jpe?g|gif' ) );
break;
}
// Get the last row's sequence that isn't a Verification.
$sequence_last_row = $wpdb->get_var( $wpdb->prepare( 'SELECT field_sequence FROM ' . VFB_WP_FIELDS_TABLE_NAME . " WHERE form_id = %d AND field_type = 'verification' ORDER BY field_sequence DESC LIMIT 1", $form_id ) );
// If it's not the first for this form, add 1.
$field_sequence = ( ! empty( $sequence_last_row ) ) ? $sequence_last_row : 0;
$newdata = array(
'form_id' => $form_id,
'field_key' => $field_key,
'field_name' => $field_name,
'field_type' => $field_type,
'field_options' => $field_options,
'field_sequence' => $field_sequence,
'field_validation' => $field_validation,
);
// Create the field.
$wpdb->insert( VFB_WP_FIELDS_TABLE_NAME, $newdata );
$insert_id = $wpdb->insert_id;
// VIP fields.
$vip_fields = array( 'verification', 'secret', 'submit' );
// Move the VIPs.
foreach ( $vip_fields as $update ) {
$field_sequence++;
$where = array(
'form_id' => absint( $data['form_id'] ),
'field_type' => $update,
);
$wpdb->update( VFB_WP_FIELDS_TABLE_NAME, array( 'field_sequence' => $field_sequence ), $where );
}
$field = new Visual_Form_Builder_Admin_Fields();
echo $field->field_output( $data['form_id'], $insert_id );
die( 1 );
}
/**
* Delete field
*
* @return void
*/
public function delete_field() {
global $wpdb;
if ( isset( $_POST['action'] ) && 'visual_form_builder_delete_field' === $_POST['action'] ) {
$form_id = isset( $_POST['form'] ) ? absint( $_POST['form'] ) : 0;
$field_id = isset( $_POST['field'] ) ? absint( $_POST['field'] ) : 0;
check_ajax_referer( 'delete-field-' . $form_id, 'nonce' );
if ( isset( $_POST['child_ids'] ) && ! empty( $_POST['child_ids'] ) ) {
foreach ( wp_unslash( $_POST['child_ids'] ) as $children ) {
$parent = absint( $_POST['parent_id'] );
// Update each child item with the new parent ID.
$wpdb->update( VFB_WP_FIELDS_TABLE_NAME, array( 'field_parent' => $parent ), array( 'field_id' => $children ) );
}
}
// Delete the field.
$wpdb->query( $wpdb->prepare( 'DELETE FROM ' . VFB_WP_FIELDS_TABLE_NAME . ' WHERE field_id = %d', $field_id ) );
}
die( 1 );
}
/**
* Form settings
*
* @return void
*/
public function form_settings() {
$current_user = wp_get_current_user();
if ( isset( $_POST['action'] ) && 'visual_form_builder_form_settings' === $_POST['action'] ) {
$form_id = isset( $_POST['form'] ) ? absint( $_POST['form'] ) : 0;
$status = isset( $_POST['status'] ) ? sanitize_text_field( wp_unslash( $_POST['status'] ) ) : 'opened';
$accordion = isset( $_POST['accordion'] ) ? sanitize_text_field( wp_unslash( $_POST['accordion'] ) ) : 'general-settings';
$user_id = $current_user instanceof WP_User ? $current_user->ID : 1;
$form_settings = get_user_meta( $user_id, 'vfb-form-settings', true );
$array = array(
'form_setting_tab' => $status,
'setting_accordion' => $accordion,
);
// Set defaults if meta key doesn't exist.
if ( ! $form_settings || '' === $form_settings ) {
$meta_value[ $form_id ] = $array;
update_user_meta( $user_id, 'vfb-form-settings', $meta_value );
} else {
$form_settings[ $form_id ] = $array;
update_user_meta( $user_id, 'vfb-form-settings', $form_settings );
}
}
die( 1 );
}
}
