main = $main_instance; } /** * Page de paramètres généraux. * * @return void */ public function settings_page() { if ( ! current_user_can( 'manage_options' ) ) { wp_die( esc_html__( 'Vous n\'avez pas les permissions nécessaires.', 'advanced-pdf-invoice-builder' ) ); } if ( ( isset( $GLOBALS['_POST']['save_settings'] ) || isset( $GLOBALS['_POST']['pdfib_floating_save'] ) ) && check_ajax_referer( 'pdfib_ajax', 'nonce' ) ) { $this->save_settings(); echo '

' . esc_html__( 'Paramètres sauvegardés avec succès.', 'advanced-pdf-invoice-builder' ) . '

'; } include_once plugin_dir_path( __DIR__ ) . '../../templates/admin/settings-page.php'; } /** * Récupère un paramètre. * * @param string $option Clé du paramètre. * @param mixed $fallback Valeur par défaut. * @return mixed Valeur du paramètre. */ public function get_setting( $option, $fallback = false ) { return get_option( $option, $fallback ); } /** * Sauvegarde les paramètres généraux. * * @return void */ private function save_settings() { check_ajax_referer( 'pdfib_ajax', 'nonce' ); // Rôles autorisés. $allowed_roles = isset( $GLOBALS['_POST']['allowed_roles'] ) ? array_map( 'sanitize_text_field', wp_unslash( (array) $GLOBALS['_POST']['allowed_roles'] ) ) : array( 'administrator' ); pdfib_update_option( 'pdfib_allowed_roles', $allowed_roles ); // Informations société, seulement les champs non disponibles dans WooCommerce ou WordPress. $company_vat = sanitize_text_field( wp_unslash( $GLOBALS['_POST']['company_vat'] ?? '' ) ); $company_rcs = sanitize_text_field( wp_unslash( $GLOBALS['_POST']['company_rcs'] ?? '' ) ); $company_siret = sanitize_text_field( wp_unslash( $GLOBALS['_POST']['company_siret'] ?? '' ) ); pdfib_update_option( 'pdfib_company_vat', $company_vat ); pdfib_update_option( 'pdfib_company_rcs', $company_rcs ); pdfib_update_option( 'pdfib_company_siret', $company_siret ); // Templates par statut de commande. $status_templates = array(); if ( isset( $GLOBALS['_POST']['order_status_templates'] ) && is_array( $GLOBALS['_POST']['order_status_templates'] ) ) { $order_status_raw = wp_unslash( $GLOBALS['_POST']['order_status_templates'] ); foreach ( $order_status_raw as $status => $template_id ) { $status_templates[ sanitize_text_field( $status ) ] = intval( $template_id ); } } $settings = pdfib_get_option( 'pdfib_settings', array() ); $settings['pdfib_order_status_templates'] = $status_templates; pdfib_update_option( 'pdfib_settings', $settings ); } }