diff --git a/.gitignore b/.gitignore index 7c1d8e617..cd5d30f90 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,4 @@ tests/chrome_recordings *.min.js.* *.min.css.* tests/e2e/plugins-page-wpuf-lite-check.png -tests/e2e/screenshots \ No newline at end of file +tests/e2e/screenshots diff --git a/assets/css/admin/form-builder.css b/assets/css/admin/form-builder.css index e8ce52e1f..1ccd6987b 100644 --- a/assets/css/admin/form-builder.css +++ b/assets/css/admin/form-builder.css @@ -925,9 +925,7 @@ html { display: inline-flex; align-items: center; justify-content: center; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -1096,9 +1094,7 @@ html { --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -1885,9 +1881,7 @@ html { --tw-bg-opacity: 1; background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); padding: 1.5rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -2576,9 +2570,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, padding-top: 0.5rem; padding-bottom: 0.5rem; text-align: start; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -3030,8 +3022,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, .wpuf-glass, .wpuf-glass.wpuf-btn-active { border: none; - -webkit-backdrop-filter: blur(var(--glass-blur, 40px)); - backdrop-filter: blur(var(--glass-blur, 40px)); + backdrop-filter: blur(var(--glass-blur, 40px)); background-color: transparent; background-image: linear-gradient( 135deg, @@ -3051,8 +3042,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, @media (hover: hover) { .wpuf-glass.wpuf-btn-active { border: none; - -webkit-backdrop-filter: blur(var(--glass-blur, 40px)); - backdrop-filter: blur(var(--glass-blur, 40px)); + backdrop-filter: blur(var(--glass-blur, 40px)); background-color: transparent; background-image: linear-gradient( 135deg, @@ -3457,9 +3447,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, .wpuf-tooltip:before, .wpuf-tooltip:after { opacity: 0; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-delay: 100ms; transition-duration: 200ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); @@ -6604,9 +6592,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, } .wpuf-transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } diff --git a/assets/css/ai-form-builder.css b/assets/css/ai-form-builder.css index f7af8b688..d02a75a38 100644 --- a/assets/css/ai-form-builder.css +++ b/assets/css/ai-form-builder.css @@ -925,9 +925,7 @@ html { display: inline-flex; align-items: center; justify-content: center; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -1096,9 +1094,7 @@ html { --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -1885,9 +1881,7 @@ html { --tw-bg-opacity: 1; background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity))); padding: 1.5rem; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -2576,9 +2570,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, padding-top: 0.5rem; padding-bottom: 0.5rem; text-align: start; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); transition-duration: 200ms; @@ -3030,8 +3022,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, .wpuf-glass, .wpuf-glass.wpuf-btn-active { border: none; - -webkit-backdrop-filter: blur(var(--glass-blur, 40px)); - backdrop-filter: blur(var(--glass-blur, 40px)); + backdrop-filter: blur(var(--glass-blur, 40px)); background-color: transparent; background-image: linear-gradient( 135deg, @@ -3051,8 +3042,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, @media (hover: hover) { .wpuf-glass.wpuf-btn-active { border: none; - -webkit-backdrop-filter: blur(var(--glass-blur, 40px)); - backdrop-filter: blur(var(--glass-blur, 40px)); + backdrop-filter: blur(var(--glass-blur, 40px)); background-color: transparent; background-image: linear-gradient( 135deg, @@ -3457,9 +3447,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, .wpuf-tooltip:before, .wpuf-tooltip:after { opacity: 0; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-delay: 100ms; transition-duration: 200ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); @@ -6471,9 +6459,7 @@ input.wpuf-tab:checked + .wpuf-tab-content, } .wpuf-transition { - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; - transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } diff --git a/includes/Fields/Form_Field_MultiDropdown.php b/includes/Fields/Form_Field_MultiDropdown.php index bf7539139..dcb78e202 100755 --- a/includes/Fields/Form_Field_MultiDropdown.php +++ b/includes/Fields/Form_Field_MultiDropdown.php @@ -24,6 +24,9 @@ public function __construct() { * @return void */ public function render( $field_settings, $form_id, $type = 'post', $post_id = null ) { + // Enqueue custom multi-select assets + $this->enqueue_multiselect_assets(); + if ( isset( $post_id ) && $post_id != '0' ) { $selected = $this->get_meta( $post_id, $field_settings['name'], $type ); @@ -47,7 +50,7 @@ public function render( $field_settings, $form_id, $type = 'post', $post_id = nu
- @@ -170,4 +173,18 @@ public function render_field_data( $data, $field ) { form_settings['label_position'] ) ? $this->form_settings['label_position'] : 'left'; - $layout = isset( $this->form_settings['form_layout'] ) ? $this->form_settings['form_layout'] : 'layout1'; + $layout = 'layout1'; $theme_css = isset( $this->form_settings['use_theme_css'] ) ? $this->form_settings['use_theme_css'] : 'wpuf-style'; do_action( 'wpuf_before_form_render', $form_id ); - if ( ! empty( $layout ) ) { - wp_enqueue_style( 'wpuf-' . $layout ); + $form = new Form($form_id); + + // Check if Use Theme CSS is enabled - if so, don't enqueue plugin styles + $use_theme_css = isset( $this->form_settings['use_theme_css'] ) ? $this->form_settings['use_theme_css'] : ''; + + if ( 'wpuf_profile' === $form->data->post_type && 'on' !== $use_theme_css ) { + $layout = isset( $this->form_settings['profile_form_layout'] ) ? $this->form_settings['profile_form_layout'] : 'layout1'; + switch ( $layout ) { + case 'layout2': + wp_enqueue_style( 'wpuf-reg-template-2' ); + break; + + case 'layout3': + wp_enqueue_style( 'wpuf-reg-template-3' ); + break; + + case 'layout4': + wp_enqueue_style( 'wpuf-reg-template-4' ); + break; + + case 'layout5': + wp_enqueue_style( 'wpuf-reg-template-5' ); + break; + + default: + wp_enqueue_style( 'wpuf-reg-template-1' ); + break; + } + } else { + $layout = isset( $this->form_settings['form_layout'] ) ? $this->form_settings['form_layout'] : 'layout1'; + + if ( ! empty( $layout ) && 'on' !== $use_theme_css ) { + // Always enqueue the base template style + wp_enqueue_style( 'wpuf-reg-template-base' ); + wp_enqueue_style( 'wpuf-' . $layout ); + } } + if ( ! is_user_logged_in() && ( ! empty( $this->form_settings['post_permission'] ) && 'guest_post' !== $this->form_settings['post_permission'] ) ) { $login = wpuf()->frontend->simple_login->get_login_url(); $register = wpuf()->frontend->simple_login->get_registration_url(); diff --git a/includes/Render_Form.php b/includes/Render_Form.php index e37fde2c9..e4314218c 100644 --- a/includes/Render_Form.php +++ b/includes/Render_Form.php @@ -251,7 +251,7 @@ public function render_form( $form_id, $post_id = null ) { do_action( 'wpuf_before_form_render', $form_id ); - if ( !empty( $layout ) ) { + if ( ! empty( $layout ) && 'on' !== $theme_css ) { wp_enqueue_style( 'wpuf-' . $layout ); } @@ -1334,12 +1334,12 @@ private function is_taxonomy_field_gated( $form_field ) { if ( $form_field['input_type'] !== 'taxonomy' ) { return false; } - + // If pro is active, no fields are gated if ( wpuf_is_pro_active() ) { return false; } - + // Check if this is a custom taxonomy $builtin_taxonomies = apply_filters( 'wpuf_builtin_taxonomies_free', array( 'category', 'post_tag' ) ); return ! in_array( $form_field['name'], $builtin_taxonomies, true ); diff --git a/languages/wp-user-frontend.pot b/languages/wp-user-frontend.pot index 3144920a1..c0e6d95e0 100644 --- a/languages/wp-user-frontend.pot +++ b/languages/wp-user-frontend.pot @@ -779,7 +779,7 @@ msgstr "" #: admin/html/form-settings-post.php:22 class/render-form.php:776 #: includes/Admin/Forms/Admin_Form_Builder.php:83 -#: includes/Frontend_Render_Form.php:79 includes/Render_Form.php:638 +#: includes/Frontend_Render_Form.php:80 includes/Render_Form.php:638 #: includes/class-frontend-render-form.php:183 msgid "Save Draft" msgstr "" @@ -1207,7 +1207,7 @@ msgstr "" #: includes/Ajax/Admin_Form_Builder_Ajax.php:138 #: includes/Ajax/Admin_Form_Builder_Ajax.php:142 #: includes/Ajax/Admin_Form_Builder_Ajax.php:218 -#: includes/Frontend_Render_Form.php:123 +#: includes/Frontend_Render_Form.php:124 #: includes/Integrations/WPUF_ACF_Compatibility.php:76 #: includes/Integrations/WPUF_ACF_Compatibility.php:94 #: includes/Integrations/WPUF_ACF_Compatibility.php:160 @@ -1255,7 +1255,7 @@ msgstr "" #: admin/template-post.php:150 includes/Admin/Forms/Template_Post.php:159 #: includes/Fields/Field_Contract.php:494 #: includes/Fields/Form_Field_MultiDropdown.php:11 -#: includes/Fields/Form_Field_MultiDropdown.php:81 +#: includes/Fields/Form_Field_MultiDropdown.php:84 msgid "Multi Select" msgstr "" @@ -1676,12 +1676,12 @@ msgstr "" msgid "Invisible reCAPTCHA validation failed" msgstr "" -#: class/render-form.php:378 includes/Frontend_Render_Form.php:187 +#: class/render-form.php:378 includes/Frontend_Render_Form.php:188 #: includes/Render_Form.php:235 includes/class-frontend-render-form.php:289 msgid "Your selected form is no longer available." msgstr "" -#: class/render-form.php:384 includes/Frontend_Render_Form.php:193 +#: class/render-form.php:384 includes/Frontend_Render_Form.php:194 #: includes/Render_Form.php:241 includes/class-frontend-render-form.php:295 msgid "Please make sure you've published your form." msgstr "" @@ -2898,7 +2898,7 @@ msgstr "" #: includes/Admin/Forms/Post/Templates/Post_Form_Template_Video.php:104 #: includes/Fields/Field_Contract.php:238 #: includes/Fields/Form_Field_Dropdown.php:110 -#: includes/Fields/Form_Field_MultiDropdown.php:85 +#: includes/Fields/Form_Field_MultiDropdown.php:88 #: includes/Fields/Form_Field_Post_Taxonomy.php:500 msgid "- Select -" msgstr "" @@ -2939,7 +2939,7 @@ msgstr "" #: includes/Admin/Forms/Admin_Form_Builder.php:336 #: includes/Fields/Form_Field_Checkbox.php:112 #: includes/Fields/Form_Field_Dropdown.php:109 -#: includes/Fields/Form_Field_MultiDropdown.php:84 +#: includes/Fields/Form_Field_MultiDropdown.php:87 #: includes/Fields/Form_Field_Radio.php:111 msgid "Option" msgstr "" @@ -4731,7 +4731,7 @@ msgid "You already have an account in our site. Please login to continue." msgstr "" #: includes/Ajax/Frontend_Form_Ajax.php:752 -#: includes/Frontend_Render_Form.php:227 +#: includes/Frontend_Render_Form.php:258 #: includes/class-frontend-render-form.php:323 msgid "You do not have sufficient permissions to access this form." msgstr "" @@ -6921,13 +6921,13 @@ msgstr "" msgid "Please Cancel Your Currently Active Pack first!" msgstr "" -#: includes/Frontend_Render_Form.php:327 +#: includes/Frontend_Render_Form.php:358 #: includes/class-frontend-render-form.php:928 #: templates/dashboard/posts.php:120 msgid "Featured" msgstr "" -#: includes/Frontend_Render_Form.php:334 +#: includes/Frontend_Render_Form.php:365 #: includes/class-frontend-render-form.php:936 #. translators: %1$s is Post type and %2$d is item #. translators: %1$s is Post type and %2$s is total feature item diff --git a/wpuf-functions.php b/wpuf-functions.php index a4d55bcd0..38e758bfa 100644 --- a/wpuf-functions.php +++ b/wpuf-functions.php @@ -531,15 +531,15 @@ function wpuf_get_image_sizes() { function wpuf_allowed_extensions() { $extesions = [ 'images' => [ - 'ext' => 'jpg,jpeg,gif,png,bmp,webp', + 'ext' => 'jpg, jpeg, gif, png, bmp, webp', 'label' => __( 'Images', 'wp-user-frontend' ), ], 'audio' => [ - 'ext' => 'mp3,wav,ogg,wma,mka,m4a,ra,mid,midi', + 'ext' => 'mp3, wav, ogg, wma, mka, m4a, ra, mid, midi', 'label' => __( 'Audio', 'wp-user-frontend' ), ], 'video' => [ - 'ext' => 'avi,divx,flv,mov,ogv,mkv,mp4,m4v,divx,mpg,mpeg,mpe', + 'ext' => 'avi, divx, flv, mov, ogv, mkv, mp4, m4v, divx, mpg, mpeg, mpe', 'label' => __( 'Videos', 'wp-user-frontend' ), ], 'pdf' => [ @@ -547,11 +547,11 @@ function wpuf_allowed_extensions() { 'label' => __( 'PDF', 'wp-user-frontend' ), ], 'office' => [ - 'ext' => 'doc,ppt,pps,xls,mdb,docx,xlsx,pptx,odt,odp,ods,odg,odc,odb,odf,rtf,txt', + 'ext' => 'doc, ppt, pps, xls, mdb, docx, xlsx, pptx, odt, odp, ods, odg, odc, odb, odf, rtf, txt', 'label' => __( 'Office Documents', 'wp-user-frontend' ), ], 'zip' => [ - 'ext' => 'zip,gz,gzip,rar,7z', + 'ext' => 'zip, gz, gzip, rar, 7z', 'label' => __( 'Zip Archives', 'wp-user-frontend' ), ], 'exe' => [