blob: 074f80ea5e8df77822e5ebc0d804df315157b6d5 [file] [log] [blame]
<?php
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* OXXO Payment Method class extending UPE base class
*/
class WC_Stripe_UPE_Payment_Method_Oxxo extends WC_Stripe_UPE_Payment_Method {
const STRIPE_ID = 'oxxo';
const LPM_GATEWAY_CLASS = WC_Gateway_Stripe_Oxxo::class;
/**
* Constructor for OXXO payment method
*
* @since 5.8.0
*/
public function __construct() {
parent::__construct();
$this->stripe_id = self::STRIPE_ID;
$this->can_refund = false;
$this->title = 'Pay with OXXO';
$this->is_reusable = false;
$this->supported_currencies = [ 'MXN' ];
$this->supported_countries = [ 'MX' ];
$this->label = __( 'OXXO', 'woocommerce-gateway-stripe' );
$this->description = __(
'OXXO is a Mexican chain of convenience stores that allows customers to pay bills and online purchases in-store with cash.',
'woocommerce-gateway-stripe'
);
add_filter( 'wc_stripe_allowed_payment_processing_statuses', [ $this, 'add_allowed_payment_processing_statuses' ], 10, 2 );
}
/**
* Adds on-hold as accepted status during webhook handling on orders paid with OXXO
*
* @param $allowed_statuses
* @param $order
*
* @return mixed
*/
public function add_allowed_payment_processing_statuses( $allowed_statuses, $order ) {
if ( 'oxxo' === $order->get_meta( '_stripe_upe_payment_type' ) && ! in_array( 'on-hold', $allowed_statuses ) ) {
$allowed_statuses[] = 'on-hold';
}
return $allowed_statuses;
}
}