get_id() . ' has been cancelled due to non-payment'; return $subject; } function AGC_change_cancelled_email_heading($heading, $order) { $heading = "Your order has been cancelled. Do not send any cryptocurrency to the payment address."; return $heading; } function AGC_change_partial_email_note_subject_line($subject, $order) { $subject = 'Partial payment received for Order ' . $order->get_id(); return $subject; } function AGC_change_partial_email_heading($heading, $order) { $heading = 'Partial payment received for Order ' . $order->get_id(); return $heading; } function AGC_update_database_when_admin_changes_order_status( $orderId, $postData ) { $oldOrderStatus = $postData->post_status; $newOrderStatus = $_POST['order_status']; error_log('Is admin: (' . is_admin() . ') Old: ' . $oldOrderStatus . ' New: ' . $newOrderStatus); $paymentAmount = 0.0; foreach ($_POST['meta'] as $customAttribute) { error_log("customAttribute: " . print_r($customAttribute, true)); if ($customAttribute['key'] === 'crypto_amount') { $paymentAmount = $customAttribute['value']; } } error_log('crypto amount: ' . $paymentAmount); // this order was not made by us if ($paymentAmount == 0.0) { return; } $paymentRepo = new AGC_Payment_Repo(); // If admin updates from needs-payment to has-payment, stop looking for matching transactions if ($oldOrderStatus === 'wc-pending' && $newOrderStatus === 'wc-processing') { $paymentRepo->set_status($orderId, $paymentAmount, 'paid'); } if ($oldOrderStatus === 'wc-pending' && $newOrderStatus === 'wc-completed') { $paymentRepo->set_status($orderId, $paymentAmount, 'paid'); } if ($oldOrderStatus === 'wc-on-hold' && $newOrderStatus === 'wc-processing') { $paymentRepo->set_status($orderId, $paymentAmount, 'paid'); } if ($oldOrderStatus === 'wc-on-hold' && $newOrderStatus === 'wc-completed') { $paymentRepo->set_status($orderId, $paymentAmount, 'paid'); } // If admin updates from cancelled to needs-payment, start looking for matching transactions if ($oldOrderStatus === 'wc-cancelled' && $newOrderStatus === 'wc-on-hold') { $paymentRepo->set_status($orderId, $paymentAmount, 'unpaid'); $paymentRepo->set_ordered_at($orderId, $paymentAmount, time()); } if ($oldOrderStatus === 'wc-cancelled' && $newOrderStatus === 'wc-pending') { $paymentRepo->set_status($orderId, $paymentAmount, 'unpaid'); $paymentRepo->set_ordered_at($orderId, $paymentAmount, time()); } if ($oldOrderStatus === 'wc-failed' && $newOrderStatus === 'wc-on-hold') { $paymentRepo->set_status($orderId, $paymentAmount, 'unpaid'); $paymentRepo->set_ordered_at($orderId, $paymentAmount, time()); } if ($oldOrderStatus === 'wc-failed' && $newOrderStatus === 'wc-pending') { $paymentRepo->set_status($orderId, $paymentAmount, 'unpaid'); $paymentRepo->set_ordered_at($orderId, $paymentAmount, time()); } } ?>