json_error( array( 'code' => 'missing_form', 'message' => __( 'Missing form ID.', 'stacklar-forms' ), ), 400 ); } if ( ! wp_verify_nonce( $nonce, 'stacklar_config_' . $form_id ) ) { return $this->json_error( array( 'code' => 'invalid_nonce', 'message' => __( 'Invalid request.', 'stacklar-forms' ), ), 403 ); } $this->assert_form_runtime_access( $form_id ); $config = stacklar_build_form_actions_config( $form_id ); if ( empty( $config['actions'] ) ) { if ( ! empty( $config['lockedActions'] ) && is_array( $config['lockedActions'] ) ) { return $this->json_success( array( 'form_id' => $form_id, 'actions' => array_values( array_map( 'sanitize_key', $config['lockedActions'] ) ), 'lockedActions' => array_values( array_map( 'sanitize_key', $config['lockedActions'] ) ), 'nonces' => array(), 'actionSettings' => isset( $config['actionSettings'] ) ? $config['actionSettings'] : array(), 'messages' => isset( $config['messages'] ) ? $config['messages'] : array(), 'protection' => isset( $config['protection'] ) ? $config['protection'] : array(), 'restrictions' => isset( $config['restrictions'] ) ? $config['restrictions'] : array(), 'surveyResults' => isset( $config['surveyResults'] ) ? $config['surveyResults'] : array(), 'partialSubmissions' => isset( $config['partialSubmissions'] ) ? $config['partialSubmissions'] : array(), 'payment' => isset( $config['payment'] ) ? $config['payment'] : array(), 'attribution' => isset( $config['attribution'] ) ? $config['attribution'] : array(), 'testMode' => isset( $config['testMode'] ) ? $config['testMode'] : array( 'enabled' => false ), ) ); } return $this->json_error( array( 'code' => 'no_actions', 'message' => __( 'This form has no actions configured.', 'stacklar-forms' ), ), 404 ); } $nonces = function_exists( 'stacklar_build_form_action_nonces' ) ? stacklar_build_form_action_nonces( $form_id, $config ) : array(); return $this->json_success( array( 'form_id' => $form_id, 'actions' => $config['actions'], 'lockedActions' => isset( $config['lockedActions'] ) ? $config['lockedActions'] : array(), 'nonces' => $nonces, 'actionSettings' => $config['actionSettings'], 'messages' => $config['messages'], 'protection' => isset( $config['protection'] ) ? $config['protection'] : array(), 'restrictions' => isset( $config['restrictions'] ) ? $config['restrictions'] : array(), 'surveyResults' => isset( $config['surveyResults'] ) ? $config['surveyResults'] : array(), 'partialSubmissions' => isset( $config['partialSubmissions'] ) ? $config['partialSubmissions'] : array(), 'payment' => isset( $config['payment'] ) ? $config['payment'] : array(), 'attribution' => isset( $config['attribution'] ) ? $config['attribution'] : array(), 'testMode' => isset( $config['testMode'] ) ? $config['testMode'] : array( 'enabled' => false ), ) ); } }