Code Duplication    Length = 28-30 lines in 2 locations

includes/class-wc-stripe-webhook-handler.php 2 locations

@@ 580-607 (lines=28) @@
577
	 * @since 4.0.6
578
	 * @param object $notification
579
	 */
580
	public function process_review_opened( $notification ) {
581
		if ( isset( $notification->data->object->payment_intent ) ) {
582
			$order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent );
583
584
			if ( ! $order ) {
585
				WC_Stripe_Logger::log( '[Review Opened] Could not find order via intent ID: ' . $notification->data->object->payment_intent );
586
				return;
587
			}
588
		} else {
589
			$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
590
591
			if ( ! $order ) {
592
				WC_Stripe_Logger::log( '[Review Opened] Could not find order via charge ID: ' . $notification->data->object->charge );
593
				return;
594
			}
595
		}
596
597
		$order->update_meta_data( '_stripe_status_before_hold', $order->get_status() );
598
599
		/* translators: 1) The URL to the order. 2) The reason type. */
600
		$message = sprintf( __( 'A review has been opened for this order. Action is needed. Please go to your <a href="%1$s" title="Stripe Dashboard" target="_blank">Stripe Dashboard</a> to review the issue. Reason: (%2$s)', 'woocommerce-gateway-stripe' ), $this->get_transaction_url( $order ), $notification->data->object->reason );
601
602
		if ( apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) && ! $order->get_meta( '_stripe_status_final', false ) ) {
603
			$order->update_status( 'on-hold', $message );
604
		} else {
605
			$order->add_order_note( $message );
606
		}
607
	}
608
609
	/**
610
	 * Process webhook reviews that are closed. i.e Radar.
@@ 615-644 (lines=30) @@
612
	 * @since 4.0.6
613
	 * @param object $notification
614
	 */
615
	public function process_review_closed( $notification ) {
616
		if ( isset( $notification->data->object->payment_intent ) ) {
617
			$order = WC_Stripe_Helper::get_order_by_intent_id( $notification->data->object->payment_intent );
618
619
			if ( ! $order ) {
620
				WC_Stripe_Logger::log( '[Review Closed] Could not find order via intent ID: ' . $notification->data->object->payment_intent );
621
				return;
622
			}
623
		} else {
624
			$order = WC_Stripe_Helper::get_order_by_charge_id( $notification->data->object->charge );
625
626
			if ( ! $order ) {
627
				WC_Stripe_Logger::log( '[Review Closed] Could not find order via charge ID: ' . $notification->data->object->charge );
628
				return;
629
			}
630
		}
631
632
		/* translators: 1) The reason type. */
633
		$message = sprintf( __( 'The opened review for this order is now closed. Reason: (%s)', 'woocommerce-gateway-stripe' ), $notification->data->object->reason );
634
635
		if (
636
			$order->has_status( 'on-hold' ) &&
637
			apply_filters( 'wc_stripe_webhook_review_change_order_status', true, $order, $notification ) &&
638
			! $order->get_meta( '_stripe_status_final', false )
639
		) {
640
			$order->update_status( $order->get_meta( '_stripe_status_before_hold', 'processing' ), $message );
641
		} else {
642
			$order->add_order_note( $message );
643
		}
644
	}
645
646
	/**
647
	 * Checks if capture is partial.