start_controls_section(
sprintf( '%s_settings_section', $section_id_prefix ),
array(
'label' => __( 'Form Settings', 'profile-builder' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
)
);
$edit_form_links = array(
'default' => ''
);
$form_titles = array(
'' => __( 'Default', 'profile-builder' )
);
$page_titles = $this->get_all_pages();
$form_fields = array(
'default' => get_option( 'wppb_manage_fields' )
);
$social_connect_settings = get_option( 'wppb_social_connect_settings' );
if ( is_array($social_connect_settings) ) {
$social_connect_settings = reset($social_connect_settings);
}
$social_connect = [];
if ( !( ( $wppb_module_settings !== 'not_found' && ( (
$form_type === 'rf' && (
!isset( $wppb_module_settings['wppb_multipleRegistrationForms'] ) ||
$wppb_module_settings['wppb_multipleRegistrationForms'] !== 'show'
)
) || (
$form_type === 'epf' && (
!isset( $wppb_module_settings['wppb_multipleEditProfileForms'] ) ||
$wppb_module_settings['wppb_multipleEditProfileForms'] !== 'show'
)
) )
) ||
$wppb_module_settings === 'not_found'
)
){
$args = array(
'post_type' => $post_type,
'posts_per_page' => -1
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
foreach ( $the_query->posts as $post ) {
$form_titles ['-'.Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = $post->post_title ;
$edit_form_links [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_edit_post_link($post->ID);
$form_fields [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_post_meta($post->ID, $fields_post_meta_key, true);
$social_connect [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_post_meta($post->ID, 'wppb_sc_rf_epf_active', true);
$msf_break_points [ Wordpress_Creation_Kit_PB::wck_generate_slug( $post->post_title )] = get_post_meta($post->ID, 'wppb_msf_break_points', true);
}
wp_reset_postdata();
}
}
$this->add_control(
'pb_form_name',
array(
'label' => __('Form', 'profile-builder' ),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => $form_titles,
'default' => '',
)
);
if ( $form_type === 'rf' ) {
if (!function_exists('get_editable_roles')) {
require_once ABSPATH . 'wp-admin/includes/user.php';
}
$user_roles = get_editable_roles();
foreach ($user_roles as $key => $role) {
$user_roles[$key] = $role['name'];
}
$this->add_control(
'pb_role',
array(
'label' => __('Assigned Role', 'profile-builder'),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => $user_roles,
'default' => get_option('default_role'),
'condition' => [
'pb_form_name' => '',
],
)
);
$this->add_control(
'pb_automatic_login',
array(
'label' => __('Automatic Login', 'profile-builder'),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => __('Yes', 'profile-builder'),
'label_off' => __('No', 'profile-builder'),
'return_value' => 'yes',
'default' => '',
'condition' => [
'pb_form_name' => '',
],
)
);
}
if( defined( 'WPPB_PAID_PLUGIN_DIR' ) ) {
$this->add_control(
'pb_ajax',
array(
'label' => __( 'AJAX Validation', 'profile-builder' ),
'type' => \Elementor\Controls_Manager::SWITCHER,
'label_on' => __( 'Yes', 'profile-builder' ),
'label_off' => __( 'No', 'profile-builder' ),
'return_value' => 'true',
'default' => 'false',
'condition' => [
'pb_form_name' => '',
],
)
);
}
foreach ( $edit_form_links as $form_slug => $edit_form_link ){
foreach ($form_fields[$form_slug] as $key_1 => $form_field) {
if ($form_slug === 'default') {
$form_fields['default'][$key_1]['control_group_conditions']['pb_form_name'][] = '';
continue;
}
foreach ($form_fields['default'] as $key_2 => $form_field_default) {
if ($form_field_default['id'] == $form_field['id']) {
$form_fields['default'][$key_2]['control_group_conditions']['pb_form_name'][] = '-'.$form_slug;
}
}
}
if( $form_slug === 'default' ){
continue;
}
// Edit form links
$this->add_control(
'pb_form_'.$form_slug.'_edit_link' ,
array(
'type' => \Elementor\Controls_Manager::RAW_HTML,
'raw' => sprintf( __( 'Edit the Settings for this form %1$shere%2$s' , 'profile-builder' ), '', ''),
'condition'=> [
'pb_form_name' => [ '-'.$form_slug ],
],
)
);
}
$this->end_controls_section();
$params = [
'label' => __( 'Redirects', 'profile-builder' ),
'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
];
if ( $form_type === 'epf' ){
$params['condition'] = [ 'pb_form_name' => '' ];
}
$this->start_controls_section( $section_id_prefix.'_redirects_section', $params );
unset($params);
$params = [
'type' => \Elementor\Controls_Manager::SELECT,
'options' => $page_titles,
'default' => '',
'condition' => [
'pb_form_name' => '',
],
];
if ( $form_type === 'rf' ){
$params['label'] = __( 'Redirect after Registration', 'profile-builder' );
} else {
$params['label'] = __( 'Redirect after Edit Profile', 'profile-builder' );
}
$this->add_control( 'pb_redirect_url', $params );
if ( $form_type === 'rf' ) {
$this->add_control(
'pb_logout_redirect_url',
array(
'label' => __('Redirect after Logout', 'profile-builder'),
'type' => \Elementor\Controls_Manager::SELECT,
'options' => $page_titles,
'default' => '',
)
);
}
$this->end_controls_section();
// Style controls for the form fields
$this->add_fields_styling( $form_fields['default'], $form_type );
// Style controls for the 'Send these credentials via email' checkbox
if ( $form_type === 'rf' ) {
$this->add_styling_control_group(
'Send Credentials Checkbox',
'',
'pb_register_' . $form_slug . '_wppb_send_credentials',
[
'checkbox' => [
'selector' => '.wppb-register-user .wppb-send-credentials-checkbox #send_credentials_via_email',
'section_name' => 'Checkbox',
],
'label' => [
'selector' => '.wppb-register-user .wppb-send-credentials-checkbox label[for=send_credentials_via_email]',
'section_name' => 'Label',
]
]
);
}
// Style controls for the 'Two-Factor Authentication' field group
if ( $form_type === 'epf' && $this->is_2fa_active() ) {
$this->add_styling_control_group(
'Two-Factor Authentication',
'',
'pb_edit_profile_' . $form_slug . '_2fa',
[
'2fa_heading' => [
'selector' => '.wppb-2fa-fields .wppb_2fa_heading h4',
'section_name' => 'Heading',
],
'2fa_activate_label' => [
'selector' => '.wppb-2fa-fields label[for=wppb_auth_enabled]',
'section_name' => 'Activate Label',
],
'2fa_activate_checkbox' => [
'selector' => '.wppb-2fa-fields #wppb_auth_enabled',
'section_name' => 'Activate Checkbox',
],
'2fa_relaxed_label' => [
'selector' => '.wppb-2fa-fields label[for=wppb_auth_relaxedmode]',
'section_name' => 'Relaxed Mode Label',
],
'2fa_relaxed_checkbox' => [
'selector' => '.wppb-2fa-fields #wppb_auth_relaxedmode',
'section_name' => 'Relaxed Mode Checkbox',
],
'2fa_description_label' => [
'selector' => '.wppb-2fa-fields label[for=wppb_auth_description]',
'section_name' => 'Description Label',
],
'2fa_description_input' => [
'selector' => '.wppb-2fa-fields #wppb_auth_description',
'section_name' => 'Description Input',
],
'2fa_description_description' => [
'selector' => '.wppb-2fa-fields .wppb-description-delimiter',
'section_name' => 'Description Description',
],
'2fa_secret_label' => [
'selector' => '.wppb-2fa-fields label[for=wppb_auth_secret]',
'section_name' => 'Secret Label',
],
'2fa_secret_input' => [
'selector' => '.wppb-2fa-fields #wppb_auth_secret',
'section_name' => 'Secret Input',
],
'2fa_new_secret_button' => [
'selector' => '.wppb-2fa-fields #wppb_auth_secret_buttons #wppb_auth_newsecret',
'section_name' => 'New Secret Button',
],
'2fa_qr_code_button' => [
'selector' => '.wppb-2fa-fields #wppb_auth_secret_buttons #wppb_show_qr',
'section_name' => 'QR Code Button',
],
'2fa_verify_label' => [
'selector' => '.wppb-2fa-fields .wppb_auth_verify label[for=wppb_auth_passw]',
'section_name' => 'Verify TOTP Label',
],
'2fa_verify_input' => [
'selector' => '.wppb-2fa-fields .wppb_auth_verify #wppb_auth_passw',
'section_name' => 'Verify TOTP Input',
],
'2fa_check_button' => [
'selector' => '.wppb-2fa-fields #wppb_auth_verify_buttons #wppb_auth_verify_button',
'section_name' => 'Check Button',
],
'2fa_check_indicator' => [
'selector' => '.wppb-2fa-fields #wppb_auth_verify_buttons #wppb_auth_verify_indicator',
'section_name' => 'Validity Indicator',
],
]
);
}
// Style controls for the 'Register'/'Update' button
if ( $form_type === 'rf' ) {
$this->add_styling_control_group(
'Register Button',
'',
'pb_register_' . $form_slug . '_register_button',
[
'register_button' => [
'selector' => '.wppb-register-user #register.submit.button',
'section_name' => 'Register Button',
]
]
);
} else {
$this->add_styling_control_group(
'Update Button',
'',
'pb_edit_profile_'.$form_slug.'_update_button',
[
'update_button' => [
'selector' => '.wppb-edit-user #edit_profile.submit.button',
'section_name' => 'Update Button',
]
]
);
}
// Style for the Social Connect section
if ( $social_connect_settings && strpos($social_connect_settings['display-on-the-following-forms'],
( $form_type === 'rf' ? 'pb-register' : 'pb-edit-profile' )
) ) {
$conditions = [];
foreach ( $edit_form_links as $form_slug => $edit_form_link ) {
if ( $form_slug === 'default' ) {
$conditions['pb_form_name'][] = '';
} elseif ( $social_connect[$form_slug] === 'yes') {
$conditions['pb_form_name'][] = '-' . $form_slug;
}
}
$this->add_styling_control_group(
'Social Connect Section',
$conditions,
$section_id_prefix . '_' . $form_slug . '_social_connect',
[
'sc_heading' => [
'selector' => '.wppb-sc-heading-before-reg-buttons h3',
'section_name' => 'Heading',
],
'sc_buttons' => [
'selector' => 'a.wppb-sc-button',
'section_name' => 'Buttons',
]
]
);
}
// Style for the MSF buttons
if ( wppb_check_if_add_on_is_active( 'multi-step-forms' ) ) {
$conditions = [];
foreach ( $edit_form_links as $form_slug => $edit_form_link ) {
if ( $form_slug === 'default' && !empty( get_option( 'wppb_msf_break_points', false ) ) ) {
$conditions['pb_form_name'][] = '';
} elseif ( !empty( $msf_break_points[$form_slug] ) ) {
$conditions['pb_form_name'][] = '-' . $form_slug;
}
}
$sections['msf_default'] = [
'selector' => '.wppb-msf-button',
'section_name' => 'Default'
];
$sections['msf_pagination'] = [
'selector' => '.wppb-msf-pagination',
'section_name' => 'Pagination'
];
$sections['msf_tabs'] = [
'selector' => '.wppb-msf-tabs',
'section_name' => 'Tabs'
];
$this->add_styling_control_group(
'Multi Step Forms Buttons',
$conditions,
$section_id_prefix . '_' . $form_slug . '_msf',
$sections
);
}
}
/**
* Deal with special cases. Add the targets for each field. Add the styling control groups.
* @param $form_fields
* @param $form_type
*/
protected function add_fields_styling($form_fields, $form_type ){
switch ( $form_type ){
case 'rf':
$section_id_prefix = 'pb_register';
$form_class = '.wppb-register-user';
break;
case 'epf':
$section_id_prefix = 'pb_edit_profile';
$form_class = '.wppb-edit-user';
break;
default:
return;
}
foreach ( $form_fields as $form_field ) {
$targets = [];
if ($form_field['field-title'] !== '') {
$targets['label'] = '';
}
if ($form_field['description'] !== '') {
$targets['description'] = '';
}
switch ($form_field['field']) {
case 'Default - Name (Heading)':
$field_meta = 'default_name_heading';
$targets = $this->replace_label_with_heading( $targets );
break;
case 'Default - Contact Info (Heading)':
$field_meta = 'default_contact_info_heading';
$targets = $this->replace_label_with_heading( $targets );
break;
case 'Default - About Yourself (Heading)':
$field_meta = 'default_about_yourself_heading';
$targets = $this->replace_label_with_heading( $targets );
break;
case 'Default - Username':
$field_meta = 'default_username';
$targets = $this->handle_placeholder_labels_active( $targets );
$targets['username'] = '';
break;
case 'Default - E-mail':
$field_meta = 'email';
$targets = $this->handle_placeholder_labels_active( $targets );
$targets['input'] = '';
break;
case 'Default - Password':
$field_meta = 'passw1';
$targets = $this->handle_placeholder_labels_active( $targets );
$wppb_generalSettings = get_option( 'wppb_general_settings' );
if ( !empty( $wppb_generalSettings['minimum_password_length'] ) || !empty( $wppb_generalSettings['minimum_password_strength'] ) ){
$targets['description'] = '';
}
$targets['input'] = '';
break;
case 'Default - Repeat Password':
$field_meta = 'passw2';
$targets = $this->handle_placeholder_labels_active( $targets );
$targets['input'] = '';
break;
case 'Default - Display name publicly as':
$field_meta = 'default_field_display-name';
if ( $form_type === 'rf' ){
// this field is only shown on the Edit Profile form
unset($targets);
} else {
$targets['default_field_display'] = '';
}
break;
case 'Default - Website':
$field_meta = 'website';
$targets = $this->handle_placeholder_labels_active( $targets );
$targets['input'] = '';
break;
case 'Heading':
$field_meta = 'heading';
$targets = $this->replace_label_with_heading( $targets );
break;
case 'HTML':
$field_meta = 'html';
if ($form_field['html-content'] !== '') {
$targets['html'] = '';
}
break;
case 'reCAPTCHA':
$field_meta = 'recaptcha';
$targets = $this->handle_placeholder_labels_active( $targets );
if ( $form_type === 'rf' ){
// this field is only shown on the Registration form
unset($targets);
}
break;
case 'Select (User Role)':
$field_meta = 'select_user_role';
if ( $form_type === 'rf' ){
$targets['select_user_role'] = '';
} else {
$targets['select_user_role_notice'] = '';
}
break;
case 'GDPR Delete Button':
$field_meta = 'gdpr_delete';
if ( $form_type === 'rf' ){
// this field is only shown on the Edit Profile form
unset($targets);
} else {
$targets['gdpr_delete_button'] = '';
}
break;
case 'Email Confirmation':
$field_meta = 'wppb_email_confirmation';
$targets = $this->handle_placeholder_labels_active( $targets );
$targets['input'] = '';
break;
case 'Select2':
$field_meta = $form_field['meta-name'];
$targets['select2'] = '';
break;
case 'Select (CPT)':
$field_meta = $form_field['meta-name'];
$targets['select_cpt'] = '';
break;
case 'Timepicker':
$field_meta = $form_field['meta-name'];
$targets['timepicker_hours'] = '';
$targets['timepicker_minutes'] = '';
$targets['timepicker_separator'] = '';
break;
case 'Checkbox':
$field_meta = $form_field['meta-name'];
$targets['checkbox'] = '';
$targets['checkbox_labels'] = '';
break;
case 'Radio':
$field_meta = $form_field['meta-name'];
$targets['radio'] = '';
$targets['radio_labels'] = '';
break;
case 'Upload':
$field_meta = $form_field['meta-name'];
$targets['upload'] = '';
break;
case 'Avatar':
$field_meta = $form_field['meta-name'];
$targets['avatar'] = '';
break;
case 'Checkbox (Terms and Conditions)':
$field_meta = $form_field['meta-name'];
if ( $form_type === 'rf' ){
$targets['input'] = '';
} else {
// this field is only shown on the Registration form
unset($targets);
}
break;
case 'Subscription Plans':
$field_meta = 'pms_subscription_plans';
if ( $form_type === 'rf' ){
$targets['heading'] = '';
$targets['label'] = '';
} else {
// this field can only be styled on the Registration form
unset($targets);
}
break;
case 'Repeater':
$field_meta = $form_field['meta-name'];
$repeater_fields = get_option( $form_field['meta-name'], 'not_set' );
if ( $repeater_fields !== 'not_set' ){
foreach ( $repeater_fields as $repeater_key => $repeater_field){
$repeater_fields[$repeater_key]['control_group_conditions'] = $form_field['control_group_conditions'];
}
$this->add_fields_styling( $repeater_fields, $form_type );
}
unset($targets);
break;
case 'WooCommerce Customer Billing Address':
$field_meta = $form_field['meta-name'];
$targets = $this->replace_label_with_heading( $targets );
$targets['woo_billing_label'] = ['billing_country','billing_first_name','billing_last_name','billing_company','billing_address_1','billing_address_2','billing_city','billing_state','billing_postcode','billing_email','billing_phone'];
$targets['woo_billing_select'] = ['billing_country',];
$targets['woo_billing_input'] = ['billing_first_name','billing_last_name','billing_company','billing_address_1','billing_address_2','billing_city','billing_state','billing_postcode','billing_email','billing_phone'];
if ( $form_type === 'rf' ){
$targets['woo_billing_checkbox'] = ['woo_different_shipping_address'];
$targets['woo_billing_checkbox_label'] = ['woo_different_shipping_address'];
}
break;
case 'WooCommerce Customer Shipping Address':
$field_meta = $form_field['meta-name'];
$targets = $this->replace_label_with_heading( $targets );
$targets['woo_shipping_label'] = ['shipping_country','shipping_first_name','shipping_last_name','shipping_company','shipping_address_1','shipping_address_2','shipping_city','shipping_state','shipping_postcode'];
$targets['woo_shipping_select'] = ['shipping_country',];
$targets['woo_shipping_input'] = ['shipping_first_name','shipping_last_name','shipping_company','shipping_address_1','shipping_address_2','shipping_city','shipping_state','shipping_postcode',];
break;
case 'WYSIWYG':
$field_meta = $form_field['meta-name'];
$targets['wysiwyg'] = '';
break;
case 'Default - First Name':
case 'Default - Last Name':
case 'Default - Nickname':
case 'Default - Biographical Info':
case 'Input':
case 'Textarea':
case 'Phone':
case 'Colorpicker':
case 'Datepicker':
case 'Number':
case 'Validation':
case 'Email':
$field_meta = $form_field['meta-name'];
$targets = $this->handle_placeholder_labels_active( $targets );
$targets['input'] = '';
break;
default:
$field_meta = $form_field['meta-name'];
$targets['input'] = '';
}
if (!empty($targets) && is_array($targets)) {
$sections = [];
foreach ($targets as $target => $ids) {
switch ($target) {
case 'label':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' label',
'section_name' => 'Label',
];
break;
case 'input':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' #' . $field_meta,
'section_name' => 'Input',
];
break;
case 'username':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' #username',
'section_name' => 'Input',
];
break;
case 'description':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-description-delimiter',
'section_name' => 'Description',
];
break;
case 'heading':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' h4',
'section_name' => 'Heading',
];
break;
case 'html':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_html',
'section_name' => 'HTML',
];
break;
case 'select_user_role':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_user_role',
'section_name' => 'Select User Role',
];
break;
case 'select_user_role_notice':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' p',
'section_name' => 'Select User Role Notice',
];
break;
case 'select2':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .select2.select2-container',
'section_name' => 'Select2',
];
break;
case 'select_cpt':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .select2.select2-container',
'section_name' => 'Select (CPT)',
];
break;
case 'timepicker_hours':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_timepicker_hours',
'section_name' => 'Timepicker Hours',
];
break;
case 'timepicker_minutes':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_timepicker_minutes',
'section_name' => 'Timepicker Minutes',
];
break;
case 'timepicker_separator':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-timepicker-separator',
'section_name' => 'Timepicker Separator',
];
break;
case 'checkbox':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_checkbox',
'section_name' => 'Checkbox',
];
break;
case 'checkbox_labels':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-rc-value',
'section_name' => 'Checkbox Labels',
];
break;
case 'radio':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .custom_field_radio',
'section_name' => 'Radio',
];
break;
case 'radio_labels':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-rc-value',
'section_name' => 'Radio Labels',
];
break;
case 'upload':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb_upload_button',
'section_name' => 'Upload Button',
];
break;
case 'avatar':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb_upload_button',
'section_name' => 'Avatar Button',
];
break;
case 'gdpr_delete_button':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-delete-account',
'section_name' => 'GDPR Delete Button',
];
break;
case 'default_field_display':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .' . $field_meta,
'section_name' => 'Select Name',
];
break;
case 'wysiwyg':
$sections[$target] = [
'selector' => $form_class . ' #wppb-form-element-' . $form_field['id'] . ' div#wp-' . $field_meta . '-wrap',
'section_name' => 'Input',
];
break;
case 'woo_billing_label' :
case 'woo_shipping_label' :
$sections[$target] = [
'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' label[for=', $ids, ']' ),
'section_name' => 'Labels',
];
break;
case 'woo_billing_select' :
case 'woo_shipping_select' :
$sections[$target] = [
'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' select#', $ids ),
'section_name' => 'Select',
];
break;
case 'woo_billing_input' :
case 'woo_shipping_input' :
$sections[$target] = [
'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' input#', $ids ),
'section_name' => 'Inputs',
];
break;
case 'woo_billing_checkbox' :
$sections[$target] = [
'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-shipping-different-address input#', $ids ),
'section_name' => 'Checkbox',
];
break;
case 'woo_billing_checkbox_label' :
$sections[$target] = [
'selector' => $this->add_ids_to_selector( $form_class . ' #wppb-form-element-' . $form_field['id'] . ' .wppb-shipping-different-address label[for=', $ids, ']' ),
'section_name' => 'Checkbox Label',
];
break;
default:
return;
}
}
$this->add_styling_control_group(
$form_field['field-title'],
$form_field['control_group_conditions'],
$section_id_prefix . '_' . $field_meta . '_' . $form_field['id'],
$sections
);
}
}
}
/**
* Add a selector for each id.
* @param $ids
* @param $prefix
* @param string $suffix
* @return array
*/
protected function add_ids_to_selector( $prefix, $ids, $suffix = '' ){
if ( is_array($ids) ) {
$selectors = [];
foreach ($ids as $key => $id) {
$selectors[] = $prefix . $id . $suffix;
}
return $selectors;
}
return $prefix . $ids . $suffix;
}
/**
* Replace label with heading.
* @param $targets
* @return array
*/
protected function replace_label_with_heading( $targets ){
if (array_key_exists('label', $targets)) {
$targets['heading'] = $targets['label'];
unset($targets['label']);
}
return $targets;
}
/**
* Remove control group targeting the field label if Placeholder Labels is active.
* @param $targets
* @return array
*/
protected function handle_placeholder_labels_active( $targets ){
if( $this->is_placeholder_labels_active() && array_key_exists('label', $targets)) {
unset($targets['label']);
}
return $targets;
}
/**
* Render the two widget types.
* @param $form_type
* @return mixed|Profile_Builder_Form_Creator|string|void
*/
protected function render_widget($form_type ) {
$output = parent::render_widget( $form_type );
echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
// check if the form is being displayed in the Elementor editor
$is_elementor_edit_mode = false;
if( class_exists ( '\Elementor\Plugin' ) ){
$is_elementor_edit_mode = \Elementor\Plugin::$instance->editor->is_edit_mode();
$message= "";
}
if ( $is_elementor_edit_mode && ( isset( $output->args ) && $output->args !== null ) ) {
if( defined( 'WPPB_PAID_PLUGIN_URL' ) && isset( $output->args['form_fields'] ) ){
//add the scripts for various fields
foreach ( $output->args['form_fields'] as $form_field ){
switch ( $form_field['field'] ){
case 'Select2':
echo '';
break;
case 'WYSIWYG':
echo '';
break;
case 'Select (CPT)':
echo '';
break;
case 'Phone':
echo '';
echo '';
break;
default:
break;
}
}
}
//Multi-Step Forms compatibility
if ( wppb_check_if_add_on_is_active( 'multi-step-forms' ) ) {
$ajaxUrl = admin_url( 'admin-ajax.php' );
$ajaxNonce = wp_create_nonce( 'wppb_msf_frontend_nonce' );
echo '
';
echo '
';
}
}
}
}