PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 5.4.2
WooCommerce Square v5.4.2
5.4.2 5.4.1 5.4.0 trunk 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.7.0 2.8.0 2.9.0 2.9.1 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.7.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 4.0.0 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 4.9.8 4.9.9 5.0.0 5.0.1 5.1.0 5.1.1 5.1.2 5.2.0 5.3.0 5.3.1 5.3.2 5.3.3
woocommerce-square / includes / Gateway / API / Requests / Refunds.php
woocommerce-square / includes / Gateway / API / Requests Last commit date
Card.php 11 months ago Customers.php 3 years ago Gift_Card.php 2 years ago Gift_Card_Activities.php 2 years ago Orders.php 4 months ago Payments.php 11 months ago Refunds.php 3 years ago Transactions.php 11 months ago
Refunds.php
81 lines
1 <?php
2 /**
3 * WooCommerce Square
4 *
5 * This source file is subject to the GNU General Public License v3.0
6 * that is bundled with this package in the file license.txt.
7 * It is also available through the world-wide-web at this URL:
8 * http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
9 * If you did not receive a copy of the license and are unable to
10 * obtain it through the world-wide-web, please send an email
11 * to license@woocommerce.com so we can send you a copy immediately.
12 *
13 * DISCLAIMER
14 *
15 * Do not edit or add to this file if you wish to upgrade WooCommerce Square to newer
16 * versions in the future. If you wish to customize WooCommerce Square for your
17 * needs please refer to https://docs.woocommerce.com/document/woocommerce-square/
18 *
19 * @author WooCommerce
20 * @copyright Copyright: (c) 2019, Automattic, Inc.
21 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0 or later
22 */
23
24 namespace WooCommerce\Square\Gateway\API\Requests;
25
26 defined( 'ABSPATH' ) || exit;
27
28 use Square\Models\RefundPaymentRequest;
29 use WooCommerce\Square\Utilities\Money_Utility;
30
31 /**
32 * The Refunds API request class.
33 *
34 * @since 2.2.0
35 */
36 class Refunds extends \WooCommerce\Square\API\Request {
37
38 /**
39 * Initializes a new refund request.
40 *
41 * @since 2.2.0
42 * @param \Square\SquareClient $api_client the API client
43 */
44 public function __construct( $api_client ) {
45 $this->square_api = $api_client->getRefundsApi();
46 }
47
48
49 /**
50 * Sets the data for refund a payment.
51 *
52 * @since 2.2.0
53 *
54 * @param \WC_Order $order order object
55 * @param array $refund_data array of data required for a refund.
56 */
57 public function set_refund_data( \WC_Order $order, $refund_data = array() ) {
58
59 $this->square_api_method = 'refundPayment';
60
61 // The refund objects are sorted by date DESC, so the last one created will be at the start of the array
62 $refunds = $order->get_refunds();
63 $refund_obj = $refunds[0];
64
65 $refund_amount = empty( $refund_data['amount'] ) ? $order->refund->amount : $refund_data['amount'];
66 $tender_id = empty( $refund_data['tender_id'] ) ? $order->refund->tender_id : $refund_data['tender_id'];
67 $payment_type = empty( $refund_data['payment_type'] ) ? '' : "-{$refund_data['payment_type']}";
68
69 $this->square_request = new RefundPaymentRequest(
70 wc_square()->get_idempotency_key( $order->get_id() . ':' . $refund_obj->get_id() . $payment_type ),
71 Money_Utility::amount_to_money( $refund_amount, $order->get_currency() )
72 );
73
74 $this->square_request->setPaymentId( $tender_id );
75
76 $this->square_request->setReason( $order->refund->reason );
77
78 $this->square_api_args = array( $this->square_request );
79 }
80 }
81