'weforms_integration', 'title' => __( 'Vendor Contact Form', 'weforms' ), 'icon' => 'dashicons-admin-generic', ]; return $sections; } /** * Insert new URL's to the dashboard navigation bar * * @param array $urls * * @since 1.2.9 * * @return array $urls */ public function add_dashboard_nav( $urls ) { $access = dokan_get_option( 'allow_vendor_contact_form', 'weforms_integration' ); $section_label = dokan_get_option( 'vendor_contact_section_label', 'weforms_integration', __( 'Contact Admin', 'weforms' ) ); if ( $access == 'on' ) { $urls['contact'] = [ 'title' => $section_label, 'icon' => '', 'url' => dokan_get_navigation_url( 'contact' ), 'pos' => 67, ]; } return $urls; } /** * Load template for contact section * * @param array $query_vars * * @since 1.2.9 * * @return void */ public function load_form_template( $query_vars ) { $access = dokan_get_option( 'allow_vendor_contact_form', 'weforms_integration' ); if ( isset( $query_vars['contact'] ) && $access == 'on' ) { require_once WEFORMS_ROOT . '/includes/templates/dokan/dashboard-contact-section.php'; } } /** * Register query var * * @param array $query_vars * * @since 1.2.9 * * @return array $query_vars */ public function register_queryvar( $query_vars ) { $query_vars[] = 'contact'; return $query_vars; } /** * Dokan settings for weForms integration * * @param array $settings_fields * * @since 1.2.9 * * @return array $settings_fields */ public function dokan_settings( $settings_fields ) { $settings_fields['weforms_integration']['allow_vendor_contact_form'] = [ 'name' => 'allow_vendor_contact_form', 'label' => __( 'Vendor Can Contact', 'weforms' ), 'desc' => __( 'Allow Vendors to contact admin from the dashbaord area', 'weforms' ), 'type' => 'checkbox', 'default' => 'off', ]; $settings_fields['weforms_integration']['vendor_contact_section_label'] = [ 'name' => 'vendor_contact_section_label', 'label' => __( 'Contact Section Label', 'weforms' ), 'desc' => __( 'Label of contact section to show on vendor dashboard', 'weforms' ), 'type' => 'text', 'default' => __( 'Contact Admin', 'weforms' ), ]; $settings_fields['weforms_integration']['vendor_contact_form'] = [ 'name' => 'vendor_contact_form', 'label' => __( 'Select Contact Form', 'weforms' ), 'desc' => __( 'Select a contact form that will show on the vendor dashboard.', 'weforms' ), 'type' => 'select', 'options' => $this->get_forms_dropdown_list(), ]; return $settings_fields; } /** * Get all the contact forms * * @since 1.2.9 * * @return array $post_forms */ public function get_forms_dropdown_list() { $list = []; $forms = $this->get_all_forms(); foreach ( $forms as $form ) { $list[$form->id] = $form->name; } return $list; } public function get_all_forms() { $forms_data = weforms()->form->all(); return $forms_data['forms']; } } }