name = 'Mailchimp'; $this->type = 'mailchimp'; $this->icon = 'fa-envelope-o'; $this->order = 500; $this->defaults = [ [ 'label' => 'Sign-up to our newsletter?', 'value' => '1', 'default' => '', ], ]; add_action('init', [$this, 'translate_label']); } public function translate_label(): void { $this->defaults[0]['label'] = __('Sign-up to our newsletter?', 'mailchimp-for-wp'); } /** * Field options panel inside the builder. * * @since 1.0.0 * @param array $field */ public function field_options($field) { //--------------------------------------------------------------------// // Basic field options //--------------------------------------------------------------------// // Options open markup $this->field_option('basic-options', $field, ['markup' => 'open']); // Mailchimp list $this->field_option_mailchimp_list($field); // Double opt-in $this->field_option_double_optin($field); // Choices $this->field_option_choices($field); // Description $this->field_option('description', $field); // Required toggle $this->field_option('required', $field); // Options close markup $this->field_option('basic-options', $field, ['markup' => 'close']); //--------------------------------------------------------------------// // Advanced field options //--------------------------------------------------------------------// // Options open markup $this->field_option('advanced-options', $field, ['markup' => 'open']); // Custom CSS classes $this->field_option('css', $field); // Options close markup $this->field_option('advanced-options', $field, ['markup' => 'close']); } private function field_option_mailchimp_list($field) { $mailchimp = new MC4WP_MailChimp(); // Field option label $tooltip = __('Select the Mailchimp list to subscribe to.', 'mailchimp-for-wp'); $option_label = $this->field_element( 'label', $field, [ 'slug' => 'mailchimp-list', 'value' => __('Mailchimp list', 'mailchimp-for-wp'), 'tooltip' => $tooltip, ], false ); $option_select = sprintf(''; // Field option row (markup) including label and input. $this->field_element( 'row', $field, [ 'slug' => 'mailchimp-list', 'content' => $option_label . $option_select, ] ); } /** * Renders the "Double opt-in?" select field option in the form builder. * * @since 4.9 * @param array $field Field data. */ private function field_option_double_optin($field) { $tooltip = __('Select "yes" if you want people to confirm their email address before being subscribed (recommended).', 'mailchimp-for-wp'); $option_label = $this->field_element( 'label', $field, [ 'slug' => 'mailchimp-double-optin', 'value' => __('Double opt-in?', 'mailchimp-for-wp'), 'tooltip' => $tooltip, ], false ); $current_value = isset($field['mailchimp_double_optin']) ? $field['mailchimp_double_optin'] : '1'; $option_select = sprintf(''; // Field option row (markup) including label and input. $this->field_element( 'row', $field, [ 'slug' => 'mailchimp-double-optin', 'content' => $option_label . $option_select, ] ); } private function field_option_choices($field) { $tooltip = __('Set your sign-up label text and whether it should be pre-checked.', 'mailchimp-for-wp'); $values = ! empty($field['choices']) ? $field['choices'] : $this->defaults; $class = ! empty($field['show_values']) && (int) $field['show_values'] === 1 ? 'show-values' : ''; $class .= ! empty($dynamic) ? ' wpforms-hidden' : ''; // Field option label $option_label = $this->field_element( 'label', $field, [ 'slug' => 'mailchimp-checkbox', 'value' => __('Sign-up checkbox', 'mailchimp-for-wp'), 'tooltip' => $tooltip, ], false ); // Field option choices inputs $option_choices = sprintf('