Repeatable_Field()
Description #
The ap_get_repeatable_field ajax callback.
Source #
File: ajax/repeatable-field.php
class Repeatable_Field extends \AnsPress\Classes\Ajax {
/**
* Instance of this class.
*
* @var null|Repeatable_Field
*/
protected static $instance;
/**
* The class constructor.
*
* Set requests and nonce key.
*/
protected function __construct() {
$this->req( 'form_name', ap_sanitize_unslash( 'form_name', 'r' ) );
$this->req( 'field_name', ap_sanitize_unslash( 'field_name', 'r' ) );
$this->req( 'current_groups', ap_sanitize_unslash( 'current_groups', 'r' ) );
$this->nonce_key = 'repeatable-field';
// Call parent.
parent::__construct();
}
/**
* Verify user permission.
*
* @return void
*/
protected function verify_permission() {
$form_name = $this->req( 'form_name' );
if ( empty( $form_name ) ) {
parent::verify_permission();
}
}
/**
* Handle ajax for logged in users.
*
* @return void
*/
public function logged_in() {
$field_name = $this->req( 'field_name' );
$current_groups = $this->req( 'current_groups' );
$_REQUEST[ $field_name . '-g' ] = $current_groups;
$_REQUEST[ $field_name . '-n' ] = ap_sanitize_unslash( 'current_nonce', 'r' );
$form = anspress()->get_form( 'question' );
$field = $form->find( $field_name, false, 'field_name' );
if ( ! empty( $field ) && is_object( $field ) ) {
if ( $field->get_last_field() ) {
$this->set_success();
$this->add_res( 'html', $field->get_last_field()->output() );
$this->add_res( 'nonce', wp_create_nonce( $field_name . ( $current_groups + 1 ) ) );
}
}
}
}
Expand full source code Collapse full source code View on GitHub: ajax/repeatable-field.php:24
Add your comment