| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.4/wp-content/plugins/woocommerce/src/Admin/Overrides/ |
Upload File : |
<?php
/**
* WC Admin Order Refund
*
* WC Admin Order Refund class that adds some functionality on top of general WooCommerce WC_Order_Refund.
*/
namespace Automattic\WooCommerce\Admin\Overrides;
defined( 'ABSPATH' ) || exit;
use Automattic\WooCommerce\Admin\API\Reports\Customers\DataStore as CustomersDataStore;
/**
* WC_Order_Refund subclass.
*/
class OrderRefund extends \WC_Order_Refund {
/**
* Order traits.
*/
use OrderTraits;
/**
* Caches the customer ID.
*
* @var int
*/
public $customer_id = null;
/**
* Add filter(s) required to hook this class to substitute WC_Order_Refund.
*/
public static function add_filters() {
add_filter( 'woocommerce_order_class', array( __CLASS__, 'order_class_name' ), 10, 3 );
}
/**
* Filter function to swap class WC_Order_Refund for this one in cases when it's suitable.
*
* @param string $classname Name of the class to be created.
* @param string $order_type Type of order object to be created.
* @param number $order_id Order id to create.
*
* @return string
*/
public static function order_class_name( $classname, $order_type, $order_id ) {
// @todo - Only substitute class when necessary (during sync).
if ( 'WC_Order_Refund' === $classname ) {
return '\Automattic\WooCommerce\Admin\Overrides\OrderRefund';
} else {
return $classname;
}
}
/**
* Get the customer ID of the parent order used for reports in the customer lookup table.
*
* @return int|bool Customer ID of parent order, or false if parent order not found.
*/
public function get_report_customer_id() {
if ( is_null( $this->customer_id ) ) {
$parent_order = \wc_get_order( $this->get_parent_id() );
if ( ! $parent_order ) {
$this->customer_id = false;
}
$this->customer_id = CustomersDataStore::get_or_create_customer_from_order( $parent_order );
}
return $this->customer_id;
}
/**
* Returns null since refunds should not be counted towards returning customer counts.
*
* @return null
*/
public function is_returning_customer() {
return null;
}
}