page_slug, array($this, 'render_settings_page'), 'dashicons-money-alt', 85 ); } else { add_submenu_page( 'eb_bookings', __('Redsys Gateway', 'eb-redsys-gateway'), __('Redsys Gateway', 'eb-redsys-gateway'), 'manage_options', $this->page_slug, array($this, 'render_settings_page') ); } } /** * Register plugin settings */ public function register_settings() { register_setting($this->option_group, 'eb_redsys_enabled', array('default' => 'yes')); register_setting($this->option_group, 'eb_redsys_test_mode', array('default' => 'yes')); register_setting($this->option_group, 'eb_redsys_merchant_code'); register_setting($this->option_group, 'eb_redsys_terminal'); register_setting($this->option_group, 'eb_redsys_encryption_key'); register_setting($this->option_group, 'eb_redsys_title', array( 'default' => __('Credit Card (Redsys)', 'eb-redsys-gateway') )); register_setting($this->option_group, 'eb_redsys_description', array( 'default' => __('Pay securely via credit card using Redsys.', 'eb-redsys-gateway') )); register_setting($this->option_group, 'eb_redsys_enable_future_payments', array('default' => 'no')); register_setting($this->option_group, 'eb_redsys_enable_subscriptions', array('default' => 'no')); // Register sections and fields add_settings_section( 'eb_redsys_general_section', __('General Settings', 'eb-redsys-gateway'), array($this, 'render_general_section'), $this->page_slug ); add_settings_section( 'eb_redsys_api_section', __('API Credentials', 'eb-redsys-gateway'), array($this, 'render_api_section'), $this->page_slug ); add_settings_section( 'eb_redsys_advanced_section', __('Advanced Settings', 'eb-redsys-gateway'), array($this, 'render_advanced_section'), $this->page_slug ); // General Fields $this->add_field('enabled', 'checkbox', __('Enable/Disable', 'eb-redsys-gateway'), 'general'); $this->add_field('test_mode', 'checkbox', __('Test Mode', 'eb-redsys-gateway'), 'general'); $this->add_field('title', 'text', __('Title', 'eb-redsys-gateway'), 'general'); $this->add_field('description', 'textarea', __('Description', 'eb-redsys-gateway'), 'general'); // API Fields $this->add_field('merchant_code', 'text', __('Merchant Code (FUC)', 'eb-redsys-gateway'), 'api'); $this->add_field('terminal', 'text', __('Terminal Number', 'eb-redsys-gateway'), 'api'); $this->add_field('encryption_key', 'password', __('Encryption Key', 'eb-redsys-gateway'), 'api'); // Advanced Fields $this->add_field('enable_future_payments', 'checkbox', __('Future Payments', 'eb-redsys-gateway'), 'advanced'); $this->add_field('enable_subscriptions', 'checkbox', __('Subscriptions', 'eb-redsys-gateway'), 'advanced'); } /** * Add field to settings */ private function add_field($name, $type, $label, $section) { add_settings_field( 'eb_redsys_' . $name, $label, array($this, 'render_field'), $this->page_slug, 'eb_redsys_' . $section . '_section', array( 'name' => 'eb_redsys_' . $name, 'type' => $type, 'label' => $label ) ); } /** * Render field based on type */ public function render_field($args) { $name = $args['name']; $type = $args['type']; $value = get_option($name); switch ($type) { case 'checkbox': ?> ' . esc_html__('Configure how Redsys appears on your site.', 'eb-redsys-gateway') . '

'; } public function render_api_section() { echo '

' . esc_html__('Enter your Redsys API credentials. You can find these in your Redsys merchant dashboard.', 'eb-redsys-gateway') . '

'; } public function render_advanced_section() { echo '

' . esc_html__('Advanced settings for special payment scenarios.', 'eb-redsys-gateway') . '

'; } /** * Add Redsys to Eagle Booking payment methods */ public function add_payment_method($methods) { if (get_option('eb_redsys_enabled') === 'yes') { $methods['redsys'] = array( 'title' => get_option('eb_redsys_title', __('Credit Card (Redsys)', 'eb-redsys-gateway')), 'description' => get_option('eb_redsys_description'), 'action_type' => 'redsys' ); } return $methods; } /** * Enqueue admin scripts */ public function enqueue_admin_scripts($hook) { if (strpos($hook, $this->page_slug) !== false) { wp_enqueue_style( 'eb-redsys-admin', EB_REDSYS_URL . 'assets/css/admin.css', array(), EB_REDSYS_VERSION ); } } /** * Render the settings page */ public function render_settings_page() { if (!current_user_can('manage_options')) { return; } ?>

option_group); do_settings_sections($this->page_slug); submit_button(); ?>

' . esc_html__('support center', 'eb-redsys-gateway') . '' ); ?>