method_title = __( 'Bancontact', 'checkout-plugins-stripe-woo' ); $this->method_description = $this->method_description(); $this->has_fields = true; $this->init_supports(); $this->init_form_fields(); $this->init_settings(); // get_option should be called after init_form_fields(). $this->title = $this->get_option( 'title' ); $this->description = $this->get_option( 'description' ); $this->order_button_text = $this->get_option( 'order_button_text' ); } /** * Description for Bancontact gateway * * @since 1.3.0 * * @return string */ public function method_description() { $payment_description = $this->payment_description(); return sprintf( /* translators: %1$s: Break, %2$s: Gateway appear message, %3$s: Break, %4$s: Gateway appear message currency wise, %4$s: HTML entities */ __( 'Accept payments using Bancontact. %1$s %2$s', 'checkout-plugins-stripe-woo' ), '
', $payment_description ); } /** * Returns all supported currencies for this payment method. * * @since 1.3.0 * * @return array */ public function get_supported_currency() { return apply_filters( 'cpsw_bancontact_supported_currencies', [ 'EUR', ] ); } /** * Add more gateway form fields * * @since 1.3.0 * * @return array */ public function get_default_settings() { $local_settings = parent::get_default_settings(); $local_settings['allowed_countries']['default'] = 'specific'; $local_settings['specific_countries']['default'] = [ 'BE' ]; return $local_settings; } /** * Checks whether this gateway is available. * * @since 1.3.0 * * @return boolean */ public function is_available() { if ( ! in_array( $this->get_currency(), $this->get_supported_currency(), true ) ) { return false; } return parent::is_available(); } /** * Creates markup for payment form for card payments * * @since 1.3.0 * * @return void */ public function payment_fields() { global $wp; $user = wp_get_current_user(); $total = WC()->cart->total; // If paying from order, we need to get total from order not cart. if ( isset( $_GET['pay_for_order'] ) && ! empty( $_GET['key'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $order = wc_get_order( wc_clean( $wp->query_vars['order-pay'] ) ); $total = $order->get_total(); } if ( is_add_payment_method_page() ) { $pay_button_text = __( 'Add Payment', 'checkout-plugins-stripe-woo' ); $total = ''; } else { $pay_button_text = ''; } /** * Action before payment field. * * @since 1.3.0 */ do_action( $this->id . '_before_payment_field_checkout' ); echo '
'; if ( $this->description ) { echo wp_kses_post( $this->description ); } echo '
'; if ( 'test' === Helper::get_payment_mode() ) { echo '
'; echo wp_kses_post( $this->get_test_mode_description() ); echo '
'; } /** * Action after payment field. * * @since 1.3.0 */ do_action( $this->id . '_after_payment_field_checkout' ); } }