manager = new FLOATCONNECT_Manager(); } /** * Register page hooks. * * @return void */ public function boot(): void { add_action( 'admin_init', array( $this, 'handle_save' ) ); } /** * Handle settings save/reset. * * @return void */ public function handle_save(): void { if ( ! current_user_can( 'manage_options' ) ) { return; } /* * Reset settings. */ if ( isset( $_POST['floatconnect_reset'] ) ) { check_admin_referer( 'floatconnect_reset', 'floatconnect_reset_nonce' ); $reset = $this->manager->reset(); if ( $reset ) { add_settings_error( 'floatconnect', 'floatconnect_reset', __( 'Settings reset to defaults.', 'floatconnect' ), 'updated' ); } else { add_settings_error( 'floatconnect', 'floatconnect_reset_failed', __( 'Settings could not be reset.', 'floatconnect' ), 'error' ); } return; } /* * Save settings. */ if ( ! isset( $_POST['floatconnect_save'] ) ) { return; } check_admin_referer( 'floatconnect_save', 'floatconnect_nonce' ); $data = array(); if ( isset( $_POST['floatconnect'] ) && is_array( $_POST['floatconnect'] ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sanitized by Settings\Sanitizer. $data = wp_unslash( $_POST['floatconnect'] ); } $saved = $this->manager->save( $data ); if ( $saved ) { add_settings_error( 'floatconnect', 'floatconnect_saved', __( 'Settings saved.', 'floatconnect' ), 'updated' ); } } /** * Render dashboard page. * * @return void */ public function render(): void { if ( ! current_user_can( 'manage_options' ) ) { return; } $settings = $this->manager->get_settings(); $contact = ( isset( $settings['contact'] ) && is_array( $settings['contact'] ) ) ? $settings['contact'] : array(); ?>

array( 'label' => 'Bottom offset (px)', 'min' => 0, 'max' => 200, ), 'side_offset' => array( 'label' => 'Side offset (px)', 'min' => 0, 'max' => 200, ), 'z_index' => array( 'label' => 'Z-index', 'min' => 1, 'max' => 9999999, ), ); foreach ( $spacing_fields as $key => $field ) { ?>

render_contact( $contact ); ?>
$contact Contact. * * @return void */ private function render_contact( array $contact ): void { $type = isset( $contact['type'] ) ? (string) $contact['type'] : 'whatsapp'; $label = isset( $contact['label'] ) ? (string) $contact['label'] : ''; $value = isset( $contact['value'] ) ? (string) $contact['value'] : ''; $types = array( 'whatsapp' => 'WhatsApp', 'phone' => 'Phone', 'email' => 'Email', 'messenger' => 'Messenger', 'telegram' => 'Telegram', 'custom' => 'Custom URL', ); ?>