Skip to content

Commit

Permalink
Merge pull request #94 from SwedbankPay/feature/wc-hpos
Browse files Browse the repository at this point in the history
High-Performance Order Storage
  • Loading branch information
aait committed Mar 25, 2023
2 parents 867dc8c + 572c1b6 commit fe16f45
Showing 1 changed file with 46 additions and 11 deletions.
57 changes: 46 additions & 11 deletions src/SwedbankPay/Core/Adapter/WC_Adapter.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace SwedbankPay\Core\Adapter;

use Automattic\WooCommerce\Utilities\OrderUtil;
use SwedbankPay\Core\Exception;
use SwedbankPay\Core\Log\LogLevel;
use SwedbankPay\Core\PaymentAdapter;
Expand Down Expand Up @@ -1168,20 +1169,33 @@ public function createCreditMemo($orderId, $amount, $transactionId, $description
*/
public function isCreditMemoExist($transactionId)
{
global $wpdb;

$query = "
SELECT post_id FROM `{$wpdb->prefix}postmeta` postmeta
LEFT JOIN `{$wpdb->prefix}posts` AS posts ON postmeta.post_id = posts.ID
WHERE meta_key='_transaction_id' AND meta_value=%s AND posts.post_type='shop_order_refund';
";
if (!$this->isHOPSEnabled()) {
global $wpdb;

$query = "
SELECT post_id FROM `{$wpdb->prefix}postmeta` postmeta
LEFT JOIN `{$wpdb->prefix}posts` AS posts ON postmeta.post_id = posts.ID
WHERE meta_key='_transaction_id' AND meta_value=%s AND posts.post_type='shop_order_refund';
";

if ($wpdb->get_var($wpdb->prepare($query, $transactionId))) {
// Credit Memo is already exists
return true;
}

if ($wpdb->get_var($wpdb->prepare($query, $transactionId))) {
// Credit Memo is already exists
return true;
return false;
}

return false;
$orders = wc_get_orders(
array(
'type' => 'shop_order_refund',
'return' => 'ids',
'limit' => 1,
'transaction_id' => $transactionId,
)
);

return count($orders) > 0;
}

/**
Expand Down Expand Up @@ -1314,4 +1328,25 @@ private function getUuid($node)
{
return apply_filters('swedbank_pay_generate_uuid', $node);
}

/**
* Checks if High-Performance Order Storage is enabled.
*
* @see https://woocommerce.com/document/high-performance-order-storage/
* @see https://github.com/woocommerce/woocommerce/wiki/High-Performance-Order-Storage-Upgrade-Recipe-Book
* @return bool
* @SuppressWarnings(PHPMD.StaticAccess)
*/
private function isHOPSEnabled()
{
if (!class_exists('\Automattic\WooCommerce\Utilities\OrderUtil')) {
return false;
}

if (!method_exists(OrderUtil::class, 'custom_orders_table_usage_is_enabled')) {
return false;
}

return OrderUtil::custom_orders_table_usage_is_enabled();
}
}

0 comments on commit fe16f45

Please sign in to comment.