From 161a667445202d5850d35ac2b4a7c1dc81713602 Mon Sep 17 00:00:00 2001 From: Halil Beycan <50718965+BeycanDeveloper@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:53:17 +0800 Subject: [PATCH] integration completed --- app/Gateways/AbstractGateway.php | 37 ++++++++++++++++---------------- app/Gateways/GatewayLite.php | 6 ++---- app/Gateways/GatewayPro.php | 6 ++---- assets/js/main.js | 6 +++--- 4 files changed, 26 insertions(+), 29 deletions(-) diff --git a/app/Gateways/AbstractGateway.php b/app/Gateways/AbstractGateway.php index b832e62..d16c012 100644 --- a/app/Gateways/AbstractGateway.php +++ b/app/Gateways/AbstractGateway.php @@ -23,11 +23,6 @@ abstract class AbstractGateway extends \Learndash_Payment_Gateway */ protected static string $title; - /** - * @var string - */ - protected static string $ldPath; - /** * @var string */ @@ -194,10 +189,16 @@ public function setup_payment(): void $paymentIntentData = null; $subscriptionData = null; - if ($product->is_price_type_paynow()) { - $paymentIntentData = $this->get_order_data($coursePrice, $product); - } elseif ($product->is_price_type_subscribe()) { - $subscriptionData = $this->get_subscription_data($coursePrice, $productPricing, $product); + try { + if ($product->is_price_type_paynow()) { + $paymentIntentData = $this->get_order_data($coursePrice, $product); + } elseif ($product->is_price_type_subscribe()) { + $subscriptionData = $this->get_subscription_data($coursePrice, $productPricing, $product); + } + } catch (\Throwable $th) { + wp_send_json_error([ + 'msg' => $th->getMessage() + ]); } wp_send_json_success($paymentIntentData ?? $subscriptionData); @@ -212,12 +213,12 @@ private function get_order_data(float $amount, Product $product): array { $transactionMetaDto = \Learndash_Transaction_Meta_DTO::create( array( - Transaction::$meta_key_gateway_name => $this::get_name(), + Transaction::$meta_key_gateway_name => self::get_name(), Transaction::$meta_key_price_type => LEARNDASH_PRICE_TYPE_PAYNOW, Transaction::$meta_key_pricing_info => \Learndash_Pricing_DTO::create( array( 'currency' => $this->currency_code, - 'price' => $amount, + 'price' => number_format($amount / 100, 2, '.', ''), ) ), ) @@ -254,16 +255,16 @@ function ($value) { * @param \Learndash_Pricing_DTO $pricing Pricing DTO. * @param Product $product Product. * - * @throws Exception Exception. + * @throws \Exception Exception. * - * @return array{metadata: array, items: array|null, payment_data: array} + * @return array */ private function get_subscription_data(float $amount, \Learndash_Pricing_DTO $pricing, Product $product): array { if (empty($pricing->duration_length)) { - throw new Exception(__('The Billing Cycle Interval value must be set.', 'learndash')); + throw new \Exception(__('The Billing Cycle Interval value must be set.', 'learndash')); } elseif (0 === $pricing->duration_value) { - throw new Exception(__('The minimum Billing Cycle value is 1.', 'learndash')); + throw new \Exception(__('The minimum Billing Cycle value is 1.', 'learndash')); } $trialDurationInDays = $this->map_trial_duration_in_days( @@ -276,7 +277,7 @@ private function get_subscription_data(float $amount, \Learndash_Pricing_DTO $pr $transactionMetaDto = \Learndash_Transaction_Meta_DTO::create( array( - Transaction::$meta_key_gateway_name => $this::get_name(), + Transaction::$meta_key_gateway_name => self::get_name(), Transaction::$meta_key_price_type => LEARNDASH_PRICE_TYPE_SUBSCRIBE, Transaction::$meta_key_pricing_info => $pricing, Transaction::$meta_key_has_trial => $hasTrial, @@ -339,7 +340,7 @@ private function map_trial_duration_in_days(int $durationValue, string $duration public function map_payment_button_markup(array $params, \WP_Post $post): string { $buttonLabel = $this->map_payment_button_label( - static::$title, + self::get_label(), $post ); @@ -355,7 +356,7 @@ public function map_payment_button_markup(array $params, \WP_Post $post): string 'productId' => $product->get_id() ]; - $button = '
'; + $button = '
'; return $button; } diff --git a/app/Gateways/GatewayLite.php b/app/Gateways/GatewayLite.php index 36ac5d7..d818cf8 100644 --- a/app/Gateways/GatewayLite.php +++ b/app/Gateways/GatewayLite.php @@ -16,11 +16,9 @@ class GatewayLite extends AbstractGateway { - protected static string $name = 'cryptopay_lite'; + public static string $name = 'cryptopay_lite'; - protected static string $title = 'CryptoPay Lite'; - - protected static string $ldPath = 'ld_cryptopay_lite'; + public static string $title = 'CryptoPay Lite'; /** * Constructor diff --git a/app/Gateways/GatewayPro.php b/app/Gateways/GatewayPro.php index 810cd9c..34d9fff 100644 --- a/app/Gateways/GatewayPro.php +++ b/app/Gateways/GatewayPro.php @@ -16,11 +16,9 @@ class GatewayPro extends AbstractGateway { - protected static string $name = 'cryptopay'; + public static string $name = 'cryptopay'; - protected static string $title = 'CryptoPay'; - - protected static string $ldPath = 'ld_cryptopay'; + public static string $title = 'CryptoPay'; /** * Constructor diff --git a/assets/js/main.js b/assets/js/main.js index c1aeda7..c16472d 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -55,13 +55,13 @@ cryptoPayLiteProcess(response.data); } } else { - helpers.errorPopup(response.msg); + helpers.errorPopup(response.data.msg); } }, error: (error) => { console.log(error); - if (error?.response?.msg) { - helpers.errorPopup(error.response.msg); + if (error?.response?.data?.msg) { + helpers.errorPopup(error.response.data.msg); } else { alert(error.responseText); }