mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-04 08:47:23 +08:00
Use woocommerce_subscription_status_updated
for all subscription status updates
This commit is contained in:
parent
6518ae0655
commit
c056b33b3c
3 changed files with 10 additions and 23 deletions
|
@ -148,7 +148,7 @@ class BillingSubscriptions {
|
|||
*/
|
||||
public function cancel( string $id ): void {
|
||||
$data = array(
|
||||
'reason' => 'Cancelled by customer',
|
||||
'reason' => sprintf( 'Cancelled by %s.', is_admin() ? 'merchant' : 'customer' ),
|
||||
);
|
||||
|
||||
$bearer = $this->bearer->bearer();
|
||||
|
|
|
@ -215,28 +215,10 @@ class PayPalSubscriptionsModule implements ServiceModule, ExtendingModule, Execu
|
|||
);
|
||||
|
||||
/**
|
||||
* Update status to pending-cancel from WC Subscriptions list page action link.
|
||||
* Update subscription status from WC Subscriptions list page action link.
|
||||
*/
|
||||
add_action(
|
||||
'woocommerce_subscription_status_pending-cancel',
|
||||
function( WC_Subscription $subscription ) use ( $c ) {
|
||||
$subscription_id = $subscription->get_meta( 'ppcp_subscription' ) ?? '';
|
||||
if ( ! $subscription_id ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$subscription_status = $c->get( 'paypal-subscriptions.status' );
|
||||
assert( $subscription_status instanceof SubscriptionStatus );
|
||||
|
||||
$subscription_status->update_status( $subscription->get_status(), $subscription_id );
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Update status to cancelled from WC Subscriptions list page action link.
|
||||
*/
|
||||
add_action(
|
||||
'woocommerce_subscription_status_cancelled',
|
||||
'woocommerce_subscription_status_updated',
|
||||
function( WC_Subscription $subscription ) use ( $c ) {
|
||||
$subscription_id = $subscription->get_meta( 'ppcp_subscription' ) ?? '';
|
||||
if ( ! $subscription_id ) {
|
||||
|
|
|
@ -55,8 +55,13 @@ class SubscriptionStatus {
|
|||
* @return void
|
||||
*/
|
||||
public function update_status( string $subscription_status, string $subscription_id ): void {
|
||||
if ( $subscription_status === 'cancelled' ) {
|
||||
if ( $subscription_status === 'pending-cancel' || $subscription_status === 'cancelled' ) {
|
||||
try {
|
||||
$current_subscription = $this->subscriptions_endpoint->subscription( $subscription_id );
|
||||
if ( $current_subscription->status === 'CANCELLED' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->logger->info(
|
||||
sprintf(
|
||||
'Canceling PayPal subscription #%s.',
|
||||
|
@ -76,7 +81,7 @@ class SubscriptionStatus {
|
|||
}
|
||||
}
|
||||
|
||||
if ( $subscription_status === 'pending-cancel' || $subscription_status === 'on-hold' ) {
|
||||
if ( $subscription_status === 'on-hold' ) {
|
||||
try {
|
||||
$this->logger->info(
|
||||
sprintf(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue