id; } /** * Get the gateway title * * @return string */ public function get_title(): string { return $this->title; } /** * Get the gateway description * * @return string */ public function get_description(): string { return $this->description; } /** * Check if the gateway shows the checkout section * * @return bool */ public function shows_checkout_section(): bool { return $this->shows_checkout_section; } /** * Get the booking payment status * * @return string */ public function booking_payment_status(): string { return 'pending'; } /** * Get the booking success message * * @return string */ public function booking_success_message(): string { return __('Booking created successfully!', 'advanced-connector-for-uplisting'); } /** * Get the submit button label. * * @param string $default Default label from the reservation form. * @param mixed|null $booking Optional booking context for gateway overrides. * @return string */ public function submit_button_label(string $default, $booking = null): string { return $default; } /** * Check if the gateway is enabled * * @return bool */ abstract public function is_enabled(): bool; /** * Process the payment. * * @param array $posted_data Checkout payload from the reservation form. * @return array{success: bool, message: string, data: array} */ abstract public function process_payment(array $posted_data): array; /** * Saved gateway option values. * * @return array */ abstract public function get_settings(): array; /** * Admin settings field definitions. * * @return array */ abstract public function get_settings_fields(): array; /** * Rendered admin settings markup. * * @return string */ abstract public function get_settings_fields_html(): string; }