芝麻web文件管理V1.00
编辑当前文件:/home/ephorei/www/wp-content/plugins/sureforms/inc/generate-form-markup.php
'GET', 'callback' => [ $this, 'get_form_markup' ], 'permission_callback' => '__return_true', ] ); } /** * Handle Form status * * @param int|string $id Contains form ID. * @param bool $show_title_current_page Boolean to show/hide form title. * @param string $sf_classname additional class_name. * @param string $post_type Contains post type. * @param bool $do_blocks Boolean to enable/disable parsing dynamic blocks. * * @return string|false * @since 0.0.1 */ public static function get_form_markup( $id, $show_title_current_page = true, $sf_classname = '', $post_type = 'post', $do_blocks = false ) { if ( isset( $_GET['id'] ) && isset( $_GET['srfm_form_markup_nonce'] ) ) { $nonce = isset( $_GET['srfm_form_markup_nonce'] ) ? sanitize_text_field( wp_unslash( $_GET['srfm_form_markup_nonce'] ) ) : ''; $id = wp_verify_nonce( $nonce, 'srfm_form_markup' ) && ! empty( $_GET['srfm_form_markup_nonce'] ) ? Helper::get_integer_value( sanitize_text_field( wp_unslash( $_GET['id'] ) ) ) : ''; } else { $id = Helper::get_integer_value( $id ); } do_action( 'srfm_localize_conditional_logic_data', $id ); $post = get_post( Helper::get_integer_value( $id ) ); $content = ''; if ( $post && ! empty( $post->post_content ) ) { if ( ! empty( $do_blocks ) ) { $content = do_blocks( $post->post_content ); } else { $content = apply_filters( 'the_content', $post->post_content ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- wordpress hook } } $blocks = parse_blocks( $content ); $block_count = count( $blocks ); $current_post_type = get_post_type(); // load all the frontend assets. Frontend_Assets::enqueue_scripts_and_styles(); ob_start(); if ( '' !== $id && 0 !== $block_count ) { $container_id = 'srfm-form-container-' . Helper::get_string_value( $id ); $form_classes = [ 'srfm-form-container', $container_id, $sf_classname, ]; $form_classes[] = Helper::get_string_value( Helper::get_meta_value( $id, '_srfm_additional_classes' ) ); $form_styling = get_post_meta( $id, '_srfm_forms_styling', true ); $form_styling = ! empty( $form_styling ) && is_array( $form_styling ) ? $form_styling : []; $page_break_settings = defined( 'SRFM_PRO_VER' ) ? get_post_meta( $id, '_srfm_page_break_settings', true ) : []; $page_break_settings = ! empty( $page_break_settings ) && is_array( $page_break_settings ) ? $page_break_settings : []; $is_page_break = ! empty( $page_break_settings ) ? $page_break_settings['is_page_break'] : false; $page_break_progress_type = ! empty( $page_break_settings ) ? $page_break_settings['progress_indicator_type'] : 'none'; $form_confirmation = get_post_meta( $id, '_srfm_form_confirmation' ); $confirmation_type = ''; $submission_action = ''; $success_url = ''; if ( is_array( $form_confirmation ) && isset( $form_confirmation[0][0] ) ) { $confirmation_data = $form_confirmation[0][0]; $page_url = $confirmation_data['page_url'] ?? ''; $custom_url = $confirmation_data['custom_url'] ?? ''; $confirmation_type = $confirmation_data['confirmation_type'] ?? ''; $submission_action = $confirmation_data['submission_action'] ?? ''; $success_url = ''; if ( 'different page' === $confirmation_type ) { $success_url = $page_url; } elseif ( 'custom url' === $confirmation_type ) { $success_url = $custom_url; } } // Submit button. $button_text = Helper::get_meta_value( $id, '_srfm_submit_button_text' ); $submit_button_alignment = ! empty( $form_styling['submit_button_alignment'] ) ? $form_styling['submit_button_alignment'] : 'left'; if ( is_rtl() && ( 'left' === $submit_button_alignment || 'right' === $submit_button_alignment ) ) { $submit_button_alignment = 'right' === $submit_button_alignment ? 'left' : 'right'; } $btn_from_theme = Helper::get_meta_value( $id, '_srfm_inherit_theme_button' ); $is_inline_button = Helper::get_meta_value( $id, '_srfm_is_inline_button' ); $security_type = Helper::get_meta_value( $id, '_srfm_captcha_security_type' ); $form_custom_css_meta = Helper::get_meta_value( $id, '_srfm_form_custom_css' ); $custom_css = ! empty( $form_custom_css_meta ) && is_string( $form_custom_css_meta ) ? $form_custom_css_meta : ''; $full = 'justify' === $submit_button_alignment ? true : false; $recaptcha_version = 'g-recaptcha' === $security_type ? Helper::get_meta_value( $id, '_srfm_form_recaptcha' ) : ''; $srfm_cf_appearance_mode = ''; $srfm_cf_turnstile_site_key = ''; $srfm_hcaptcha_site_key = ''; $google_captcha_site_key = ''; if ( 'none' !== $security_type ) { $global_setting_options = get_option( 'srfm_security_settings_options' ); } else { $global_setting_options = []; } if ( is_array( $global_setting_options ) && 'cf-turnstile' === $security_type ) { $srfm_cf_turnstile_site_key = $global_setting_options['srfm_cf_turnstile_site_key'] ?? ''; $srfm_cf_appearance_mode = $global_setting_options['srfm_cf_appearance_mode'] ?? 'auto'; } if ( is_array( $global_setting_options ) && 'hcaptcha' === $security_type ) { $srfm_hcaptcha_site_key = $global_setting_options['srfm_hcaptcha_site_key'] ?? ''; } if ( is_array( $global_setting_options ) && 'g-recaptcha' === $security_type ) { switch ( $recaptcha_version ) { case 'v2-checkbox': $google_captcha_site_key = $global_setting_options['srfm_v2_checkbox_site_key'] ?? ''; break; case 'v2-invisible': $google_captcha_site_key = $global_setting_options['srfm_v2_invisible_site_key'] ?? ''; break; case 'v3-reCAPTCHA': $google_captcha_site_key = $global_setting_options['srfm_v3_site_key'] ?? ''; break; default: break; } } $primary_color = $form_styling['primary_color']; $help_color_var = $form_styling['text_color']; $label_text_color = $form_styling['text_color_on_primary']; $field_spacing = $form_styling['field_spacing']; // New colors. $primary_color_var = $primary_color ? $primary_color : '#046bd2'; $label_text_color_var = $label_text_color ? $label_text_color : '#111827'; $selected_size = Helper::get_css_vars( $field_spacing ); ?>
true, ] ); ?>
'defer' ] ); // phpcs:ignore WordPress.WP.EnqueuedResourceParameters.MissingVersion ?>
recaptcha-type="" data-sitekey="" >
$form_data contains form data. * @param array
$submission_data contains submission data. * @since 0.0.3 * @return string|false */ public static function get_confirmation_markup( $form_data = [], $submission_data = [] ) { $confirmation_message = ''; if ( empty( $form_data ) ) { return $confirmation_message; } $form_confirmation = isset( $form_data['form-id'] ) ? get_post_meta( Helper::get_integer_value( $form_data['form-id'] ), '_srfm_form_confirmation' ) : null; if ( ! is_array( $form_confirmation ) ) { return $confirmation_message; } $confirmation_data = is_array( $form_confirmation[0] ) && isset( $form_confirmation[0][0] ) ? $form_confirmation[0][0] : null; if ( is_array( $form_confirmation ) && isset( $confirmation_data['message'] ) && is_string( $confirmation_data['message'] ) ) { $confirmation_message = $confirmation_data['message']; } if ( empty( $submission_data ) ) { return $confirmation_message; } $smart_tags = new Smart_Tags(); $confirmation_message = $smart_tags->process_smart_tags( $confirmation_data['message'], $submission_data, $form_data ); return apply_filters( 'srfm_after_submit_confirmation_message', $confirmation_message ); } /** * Get redirect url for form incase of different page or custom url is selected. * * @param array
$form_data contains form data. * @param array
$submission_data contains submission data. * @since 1.0.2 * @return string|false */ public static function get_redirect_url( $form_data = [], $submission_data = [] ) { $redirect_url = ''; if ( empty( $form_data ) ) { return $redirect_url; } $form_confirmation = isset( $form_data['form-id'] ) ? get_post_meta( Helper::get_integer_value( $form_data['form-id'] ), '_srfm_form_confirmation' ) : null; if ( ! is_array( $form_confirmation ) ) { return $redirect_url; } $confirmation_data = is_array( $form_confirmation[0] ) && isset( $form_confirmation[0][0] ) ? $form_confirmation[0][0] : null; $page_url = $confirmation_data['page_url'] ?? ''; $custom_url = $confirmation_data['custom_url'] ?? ''; $confirmation_type = $confirmation_data['confirmation_type'] ?? ''; if ( 'different page' === $confirmation_type ) { $redirect_url = esc_url( $page_url ); } elseif ( 'custom url' === $confirmation_type ) { $redirect_url = esc_url( $custom_url ); } if ( empty( $redirect_url ) ) { return $redirect_url; } if ( empty( $confirmation_data['enable_query_params'] ) || true !== $confirmation_data['enable_query_params'] ) { return $redirect_url; } if ( empty( $confirmation_data['query_params'] ) && ! is_array( $confirmation_data['query_params'] ) ) { return $redirect_url; } $query_params = []; foreach ( $confirmation_data['query_params'] as $params ) { if ( is_array( $params ) && ! empty( array_keys( $params ) ) && ! empty( array_values( $params ) ) ) { $query_params[ esc_attr( array_keys( $params )[0] ) ] = esc_attr( array_values( $params )[0] ); } } $redirect_url = add_query_arg( $query_params, $redirect_url ); if ( ! empty( $submission_data ) ) { $smart_tags = new Smart_Tags(); // Adding upload_format_type = 'raw' to retrieve urls as comma separated values. $form_data['upload_format_type'] = 'raw'; $redirect_url = html_entity_decode( $smart_tags->process_smart_tags( $redirect_url, $submission_data, $form_data ) ); } return apply_filters( 'srfm_after_submit_redirect_url', $redirect_url ); } }