challenge
1 year ago
css
18 hours ago
img
1 year ago
js
1 month ago
menu
1 month ago
partials
1 week ago
rest-api
18 hours ago
scss
1 year ago
settings
18 hours ago
uninstall
1 year ago
wpchill
1 month ago
admin-notices.php
5 months ago
admin.php
1 month ago
class-strong-testimonials-addons.php
1 month ago
class-strong-testimonials-admin-category-list.php
1 year ago
class-strong-testimonials-admin-list.php
1 year ago
class-strong-testimonials-admin-scripts.php
1 month ago
class-strong-testimonials-admin.php
1 month ago
class-strong-testimonials-debug.php
5 months ago
class-strong-testimonials-exporter.php
1 year ago
class-strong-testimonials-help.php
1 year ago
class-strong-testimonials-helper.php
1 month ago
class-strong-testimonials-list-table.php
1 year ago
class-strong-testimonials-lite-vs-pro-page.php
1 month ago
class-strong-testimonials-post-editor.php
6 months ago
class-strong-testimonials-review.php
1 year ago
class-strong-testimonials-updater.php
1 month ago
class-strong-testimonials-upsell.php
18 hours ago
class-strong-views-list-table.php
1 month ago
class-walker-strong-category-checklist.php
1 year ago
class-walker-strong-form-category-checklist.php
1 year ago
class-wpmtst-onboarding.php
1 year ago
compat.php
1 year ago
custom-fields-ajax.php
1 year ago
custom-fields.php
18 hours ago
form-preview.php
1 year ago
view-list-order.php
1 year ago
views-ajax.php
1 month ago
views-validate.php
1 year ago
views.php
1 month ago
form-preview.php
57 lines
| 1 | <?php |
| 2 | |
| 3 | function wpmtst_get_form_preview() { |
| 4 | |
| 5 | if ( ! isset( $_POST['fields'] ) ) { |
| 6 | exit; |
| 7 | } |
| 8 | |
| 9 | check_ajax_referer( 'wpmtst-admin', 'security' ); |
| 10 | |
| 11 | // parse_str decodes too; no need to use urldecode |
| 12 | parse_str( stripslashes_deep( $_POST['fields'] ), $preview ); |
| 13 | |
| 14 | $new_fields = array(); |
| 15 | $fields = apply_filters( 'wpmtst_fields', get_option( 'wpmtst_fields' ) ); |
| 16 | |
| 17 | foreach ( $preview['fields'] as $key => $field ) { |
| 18 | /* |
| 19 | * Before merging onto base field, catch fields that are "off" |
| 20 | * which the form does not submit. Otherwise, the default "on" |
| 21 | * would override the requested (but not submitted) "off". |
| 22 | */ |
| 23 | $field['show_label'] = isset( $field['show_label'] ) ? 1 : 0; |
| 24 | $field['required'] = isset( $field['required'] ) ? 1 : 0; |
| 25 | |
| 26 | $field = array_merge( $fields['field_base'], $field ); |
| 27 | |
| 28 | if ( 'none' === $field['input_type'] ) { |
| 29 | $field['input_type'] = 'text'; |
| 30 | } |
| 31 | |
| 32 | $field['name'] = sanitize_text_field( $field['name'] ); |
| 33 | $field['label'] = sanitize_text_field( $field['label'] ); |
| 34 | // TODO Replace this special handling |
| 35 | if ( 'checkbox' === $field['input_type'] ) { |
| 36 | $field['default_form_value'] = wpmtst_sanitize_checkbox( $field, 'default_form_value' ); |
| 37 | } else { |
| 38 | $field['default_form_value'] = sanitize_text_field( $field['default_form_value'] ); |
| 39 | } |
| 40 | $field['placeholder'] = sanitize_text_field( $field['placeholder'] ); |
| 41 | $field['before'] = sanitize_text_field( $field['before'] ); |
| 42 | $field['after'] = sanitize_text_field( $field['after'] ); |
| 43 | |
| 44 | // add to fields array in display order |
| 45 | $new_fields[] = $field; |
| 46 | } |
| 47 | |
| 48 | ob_start(); |
| 49 | include WPMTST_ADMIN . 'partials/templates/form-preview-template.php'; |
| 50 | $html = ob_get_contents(); |
| 51 | ob_end_clean(); |
| 52 | echo $html; |
| 53 | |
| 54 | exit; |
| 55 | } |
| 56 | add_action( 'wp_ajax_wpmtst_get_form_preview', 'wpmtst_get_form_preview' ); |
| 57 |