From dc36de005a3e5d17bcf4fdf7ac58c3fe09ac0404 Mon Sep 17 00:00:00 2001 From: muthuswamyopn <95462571+muthuswamyopn@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:31:12 +0530 Subject: [PATCH 1/6] Delete .github/PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 52 -------------------------------- 1 file changed, 52 deletions(-) delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 3cd4a3b0..00000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,52 +0,0 @@ -#### 1. Objective - -Explain in non-technical terms **WHY this PR is required**. -E.g.: What feature it adds, what problem it solves... - -This section will be used in the release notes. - -**Related information**: -Related issue(s): #< GitHub ticket number > (optional) - -#### 2. Description of change - -A general description of **WHAT changed in the codebase**, but short of an English version of the diff. Assume that people reading this will also be looking at the output of `git diff` and guide them to the highlights. - -Additionally add the reasoning for change details if they're complex or abstract. - -#### 3. Quality assurance - -Specify where and how you tested this and what further testing it might need. - -**🔧 Environments:** - -Specify the details of your test environments, including, for each, the platform version (on which the plugin was run), the Omise plugin version, and the versions of your system software such as PHP or Ruby. - -i.e. -- **WooCommerce**: v4.3.0 -- **WordPress**: v5.4.2 -- **PHP version**: 7.3.3 -- **Omise plugin version**: Omise-WooCommerce 4.3 (optional, in case of submitting a new issue) - -**✏️ Details:** - -Explain how to manually test this feature. -For example if changes were made in the UI or in the API, explain where and if any specific access is needed. - -#### 4. Impact of the change - -List the steps that must be taken for this PR to work. -E.g.: rake yak:shave, Add "yak_key" to environment variables, ... - -Be sure to include all systems that needs to be changed or which system is affected by the change -(Ex: Requires Elastic search to be installed and configured in secrets.yml). - -Note: Please provide a screenshot if your changed impact to UI. - -#### 5. Priority of change - -Normal, High or Immediate. - -#### 6. Additional Notes - -Any further information that you would like to add. \ No newline at end of file From 6abb6f3b977329bf97106539ff35765b1b5b15b5 Mon Sep 17 00:00:00 2001 From: muthuswamyopn <95462571+muthuswamyopn@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:31:36 +0530 Subject: [PATCH 2/6] Delete .github/CODEOWNERS --- .github/CODEOWNERS | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS deleted file mode 100644 index 80dd3f8a..00000000 --- a/.github/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ -* @omise/maintainers From 7465a90dad3e72a19030afe6842b3ea962c602fb Mon Sep 17 00:00:00 2001 From: muthuswamyopn <95462571+muthuswamyopn@users.noreply.github.com> Date: Fri, 22 Dec 2023 11:52:53 +0530 Subject: [PATCH 3/6] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2013f811..267264ed 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ -[![Omise](https://cdn.omise.co/assets/omise.png)](https://www.omise.co/developers) +[![Opn Payments](https://www.opn.ooo/assets/svg/logo-opn-full.svg)](https://www.opn.ooo) -[Omise](https://www.omise.co/) is a payment service provider operating in Thailand, Japan, and Singapore. -Omise provides a set of APIs that help merchants of any size accept payments online. +[Opn Payments](https://www.opn.ooo) is a payment service provider operating in Thailand, Japan, and Singapore. +Opn Payments provides a set of APIs that help merchants of any size accept payments online. -**Omise WooCommerce** is our official plugin providing support for processing payments on WooCommerce through Omise. +**Omise WooCommerce** is our official plugin providing support for processing payments on WooCommerce through Opn Payments. ![PHP Composer](https://github.com/omise/omise-woocommerce/workflows/PHP%20Composer/badge.svg) ## Usage -See our [official docs](https://www.omise.co/woocommerce-plugin) for details on installation and configuration. +See our [official docs](https://docs.opn.ooo/woocommerce-plugin) for details on installation and configuration. ## Contributing From 651756b3b3addbfd12370b7cfafde57ad3352ca4 Mon Sep 17 00:00:00 2001 From: muthuswamyopn <95462571+muthuswamyopn@users.noreply.github.com> Date: Fri, 22 Dec 2023 11:55:22 +0530 Subject: [PATCH 4/6] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 267264ed..b97d7882 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ Opn Payments provides a set of APIs that help merchants of any size accept payme **Omise WooCommerce** is our official plugin providing support for processing payments on WooCommerce through Opn Payments. -![PHP Composer](https://github.com/omise/omise-woocommerce/workflows/PHP%20Composer/badge.svg) - ## Usage See our [official docs](https://docs.opn.ooo/woocommerce-plugin) for details on installation and configuration. From 26b94e3ed919728a39cf568ea8cacdb1529c224b Mon Sep 17 00:00:00 2001 From: Aashish Gurung <101558497+aashishgurung@users.noreply.github.com> Date: Tue, 9 Jan 2024 14:54:57 +0700 Subject: [PATCH 5/6] [MIT-1695] Add TrueMoney jump app (#431) * [MIT-1695]: Added Truemoney jump app by refactoring existing Truemoney class * [MIT-1695]: Removed unnecessary comments. * [MIT-1695]: Fixed tests * Added tests. * [MIT-1695]: Renamed camelCase variables to snake_case for consistency and to follow WP standard. * [MIT-1695]: Resolved naming convention in test files. --------- Co-authored-by: Aashish --- includes/class-omise-capabilities.php | 16 +++ .../gateway/class-omise-payment-truemoney.php | 72 +++++++--- readme.txt | 2 +- .../class-omise-capabilities-test.php | 81 ++++++++--- .../includes/gateway/bootstrap-test-setup.php | 2 +- ...class-omise-payment-alipayplus-hk-test.php | 3 + ...omise-payment-alipayplus-kakaopay-test.php | 3 + .../class-omise-payment-creditcard-test.php | 1 - ...class-omise-payment-mobilebanking-test.php | 3 + .../class-omise-payment-ocbc-digital-test.php | 9 +- .../class-omise-payment-ocbc-pao-test.php | 3 + .../class-omise-payment-truemoney-test.php | 132 +++++++++++++++--- 12 files changed, 259 insertions(+), 68 deletions(-) diff --git a/includes/class-omise-capabilities.php b/includes/class-omise-capabilities.php index c7de111e..2d014a4f 100644 --- a/includes/class-omise-capabilities.php +++ b/includes/class-omise-capabilities.php @@ -251,4 +251,20 @@ public function getInstallmentMinLimit() { return $this->capabilities['limits']['installment_amount']['min']; } + + /** + * Retrieves details of TrueMoney from capabilities. + * + * @param string $source_type + */ + public function get_truemoney_backend($source_type) + { + $truemoney_source_types = [Omise_Payment_Truemoney::WALLET, Omise_Payment_Truemoney::JUMPAPP]; + + if (!in_array($source_type, $truemoney_source_types)) { + return null; + } + + return $this->getBackendByType($source_type); + } } diff --git a/includes/gateway/class-omise-payment-truemoney.php b/includes/gateway/class-omise-payment-truemoney.php index d4cd8d88..5b2f2f0c 100644 --- a/includes/gateway/class-omise-payment-truemoney.php +++ b/includes/gateway/class-omise-payment-truemoney.php @@ -6,15 +6,22 @@ */ class Omise_Payment_Truemoney extends Omise_Payment_Offsite { + /** + * Backends identifier + * @var string + */ + const WALLET = 'truemoney'; + const JUMPAPP = 'truemoney_jumpapp'; + public function __construct() { parent::__construct(); $this->id = 'omise_truemoney'; $this->has_fields = true; - $this->method_title = __( 'Opn Payments TrueMoney Wallet', 'omise' ); + $this->method_title = __( 'Opn Payments TrueMoney', 'omise' ); $this->method_description = wp_kses( - __( 'Accept payments through TrueMoney Wallet via Opn Payments payment gateway (only available in Thailand).', 'omise' ), + __( 'Accept payments through TrueMoney via Opn Payments payment gateway (only available in Thailand).', 'omise' ), array( 'strong' => array() ) ); @@ -26,7 +33,7 @@ public function __construct() $this->title = $this->get_option( 'title' ); $this->description = $this->get_option( 'description' ); $this->restricted_countries = array( 'TH' ); - $this->source_type = 'truemoney'; + $this->source_type = $this->get_source(); add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) ); add_action( 'woocommerce_api_' . $this->id . '_callback', 'Omise_Callback::execute' ); @@ -43,7 +50,7 @@ public function init_form_fields() 'enabled' => array( 'title' => __( 'Enable/Disable', 'omise' ), 'type' => 'checkbox', - 'label' => __( 'Enable Opn Payments TrueMoney Wallet Payment', 'omise' ), + 'label' => __( 'Enable Opn Payments TrueMoney Payment', 'omise' ), 'default' => 'no' ), @@ -51,7 +58,7 @@ public function init_form_fields() 'title' => __( 'Title', 'omise' ), 'type' => 'text', 'description' => __( 'This controls the title the user sees during checkout.', 'omise' ), - 'default' => __( 'TrueMoney Wallet', 'omise' ), + 'default' => __( 'TrueMoney', 'omise' ), ), 'description' => array( @@ -68,7 +75,9 @@ public function init_form_fields() public function payment_fields() { parent::payment_fields(); - Omise_Util::render_view( 'templates/payment/form-truemoney.php', array() ); + if (self::WALLET === $this->source_type) { + Omise_Util::render_view( 'templates/payment/form-truemoney.php', [] ); + } } /** @@ -82,22 +91,51 @@ public function charge($order_id, $order) public function get_charge_request($order_id, $order) { - $phoneOption = $_POST['omise_phone_number_default']; - $isPhoneOptionChecked = isset($phoneOption) && 1 == $phoneOption; - $phone_number = $isPhoneOptionChecked ? - $order->get_billing_phone() : - sanitize_text_field( $_POST['omise_phone_number'] ); - - $requestData = $this->build_charge_request( + $request_data = $this->build_charge_request( $order_id, $order, $this->source_type, $this->id . '_callback' ); - $requestData['source'] = array_merge($requestData['source'], [ - 'phone_number' => $phone_number - ]); - return $requestData; + if (self::WALLET === $this->source_type) { + $phone_option = $_POST['omise_phone_number_default']; + $is_phone_option_checked = isset($phone_option) && 1 == $phone_option; + $phone_number = $is_phone_option_checked ? + $order->get_billing_phone() : + sanitize_text_field( $_POST['omise_phone_number'] ); + + $request_data['source'] = array_merge($request_data['source'], [ + 'phone_number' => $phone_number + ]); + } + + return $request_data; + } + + /** + * Return the right ShopeePay backend depending on the platform and availability of + * the backend in the capability + */ + public function get_source() + { + $capabilities = Omise_Capabilities::retrieve(); + + if (!$capabilities) { + return self::JUMPAPP; + } + + $is_jumpapp_enabled = $capabilities->get_truemoney_backend(self::JUMPAPP); + $is_wallet_enabled = $capabilities->get_truemoney_backend(self::WALLET); + + if (!empty($is_wallet_enabled) && empty($is_jumpapp_enabled)) { + return self::WALLET; + } + + // Return JUMP APP for the following cases: + // Case 1: Both jumpapp and wallet are enabled + // Case 2: jumpapp is enabled and wallet is disabled + // Case 3: Both are disabled. + return self::JUMPAPP; } } diff --git a/readme.txt b/readme.txt index 59f05d9a..2406bb42 100644 --- a/readme.txt +++ b/readme.txt @@ -1,6 +1,6 @@ === Opn Payments === Contributors: Opn Payments -Tags: opn payments, payment, payment gateway, woocommerce plugin, omise, opn, installment, internet banking, alipay, paynow, truemoney wallet, woocommerce payment +Tags: opn payments, payment, payment gateway, woocommerce plugin, omise, opn, installment, internet banking, alipay, paynow, truemoney, woocommerce payment Requires at least: 4.3.1 Tested up to: 6.4.2 Stable tag: 5.6.2 diff --git a/tests/unit/includes/class-omise-capabilities-test.php b/tests/unit/includes/class-omise-capabilities-test.php index 3c66a39a..6ea5badc 100644 --- a/tests/unit/includes/class-omise-capabilities-test.php +++ b/tests/unit/includes/class-omise-capabilities-test.php @@ -1,8 +1,11 @@ omiseSettingMock = Mockery::mock('alias:Omise_Setting'); $this->omiseCapabilitiesMock = Mockery::mock('alias:OmiseCapabilities'); } - /** - * close mockery after test cases are done - */ - public function tearDown(): void - { - Mockery::close(); - } - /** * @dataProvider retrieve_data_provider - * @runInSeparateProcess * @covers Omise_Capabilities */ public function test_retrieve_should_return_value_when_it_should_call_api($isCheckout, $isThankYouPage, $isAdmin, $adminPageName, $expected) - { + { // assigning to global variable, so that we can use in child functions $GLOBALS['isCheckout'] = $isCheckout; $GLOBALS['isThankYouPage'] = $isThankYouPage; @@ -41,9 +39,15 @@ public function test_retrieve_should_return_value_when_it_should_call_api($isChe // mocking page name $_GET['page'] = $adminPageName; - function is_checkout() { return $GLOBALS['isCheckout']; } - function is_wc_endpoint_url($page) { return $GLOBALS['isThankYouPage']; } - function is_admin() { return $GLOBALS['isAdmin']; } + Brain\Monkey\Functions\expect('is_admin') + ->with('123') + ->andReturn($GLOBALS['isAdmin']); + Brain\Monkey\Functions\expect('is_checkout') + ->with('123') + ->andReturn($GLOBALS['isCheckout']); + Brain\Monkey\Functions\expect('is_wc_endpoint_url') + ->with('123') + ->andReturn($GLOBALS['isThankYouPage']); if ($expected) { $this->omiseSettingMock->shouldReceive('instance')->andReturn($this->omiseSettingMock); @@ -66,16 +70,53 @@ public function retrieve_data_provider() return [ // checkout page and not thank you page [true, false, false, '', true], - // // checkout page and also thank you page + // checkout page and also thank you page [true, true, false, '', false], - // // omise setting page + // omise setting page [true, true, true, 'omise', true], - // // other admin page + // other admin page [true, true, true, 'other-page', false], - // // non checkout page and also no-admin page + // non checkout page and also no-admin page [false, false, false, 'other-page', false], - // // non checkout page, non admin page + // non checkout page, non admin page [false, false, false, '', false], ]; } + + /** + * @test + */ + public function test_get_truemoney_backend_returns_null_when_invalid_payment_is_passed() + { + Brain\Monkey\Functions\expect('is_admin') + ->with('123') + ->andReturn(true); + + Brain\Monkey\Functions\expect('is_checkout') + ->with('123') + ->andReturn(true); + + Brain\Monkey\Functions\expect('is_wc_endpoint_url') + ->with('123') + ->andReturn(false); + + $capabilities = new Omise_Capabilities; + $is_enabled = $capabilities->get_truemoney_backend('abc'); + $this->assertNull($is_enabled); + } + + public function truemoney_source_provider() + { + return [ ['abc', false], ['truemoney', true], ['truemoney_jumpapp', true] ]; + } +} + +class Omise_Payment_Truemoney_Stub +{ + /** + * Backends identifier + * @var string + */ + const WALLET = 'truemoney'; + const JUMPAPP = 'truemoney_jumpapp'; } diff --git a/tests/unit/includes/gateway/bootstrap-test-setup.php b/tests/unit/includes/gateway/bootstrap-test-setup.php index b018c35e..952ba0a6 100644 --- a/tests/unit/includes/gateway/bootstrap-test-setup.php +++ b/tests/unit/includes/gateway/bootstrap-test-setup.php @@ -1,7 +1,7 @@ with('123') + ->andReturn('Chrome Web'); $_POST['omise-offsite'] = 'mobile_banking_bbl'; $obj = new Omise_Payment_Mobilebanking(); $this->getChargeTest($obj); diff --git a/tests/unit/includes/gateway/class-omise-payment-ocbc-digital-test.php b/tests/unit/includes/gateway/class-omise-payment-ocbc-digital-test.php index f545033a..14987bc8 100644 --- a/tests/unit/includes/gateway/class-omise-payment-ocbc-digital-test.php +++ b/tests/unit/includes/gateway/class-omise-payment-ocbc-digital-test.php @@ -20,12 +20,6 @@ function plugins_url() { return "http://localhost"; } } - - if (!function_exists('wc_get_user_agent')) { - function wc_get_user_agent() { - return "Chrome Web"; - } - } } public function tearDown(): void @@ -85,6 +79,9 @@ public function getIconReturnsCorrectImageLink() */ public function testCharge() { + Brain\Monkey\Functions\expect('wc_get_user_agent') + ->with('123') + ->andReturn('Chrome Web'); $this->getChargeTest($this->obj); } } diff --git a/tests/unit/includes/gateway/class-omise-payment-ocbc-pao-test.php b/tests/unit/includes/gateway/class-omise-payment-ocbc-pao-test.php index bdeb1458..5d1f6de2 100644 --- a/tests/unit/includes/gateway/class-omise-payment-ocbc-pao-test.php +++ b/tests/unit/includes/gateway/class-omise-payment-ocbc-pao-test.php @@ -26,6 +26,9 @@ public function tearDown(): void */ public function testCharge() { + Brain\Monkey\Functions\expect('wc_get_user_agent') + ->with('123') + ->andReturn('Chrome Web'); $this->getChargeTest($this->obj); } } diff --git a/tests/unit/includes/gateway/class-omise-payment-truemoney-test.php b/tests/unit/includes/gateway/class-omise-payment-truemoney-test.php index c5b59492..cde106de 100644 --- a/tests/unit/includes/gateway/class-omise-payment-truemoney-test.php +++ b/tests/unit/includes/gateway/class-omise-payment-truemoney-test.php @@ -4,52 +4,140 @@ class Omise_Payment_Truemoney_Test extends Omise_Offsite_Test { + private $omise_capability_mock; + public function setUp(): void { $this->sourceType = 'truemoney'; parent::setUp(); + Brain\Monkey\Functions\expect('is_admin') + ->with('123') + ->andReturn(true); + Brain\Monkey\Functions\expect('is_checkout') + ->with('123') + ->andReturn(true); + Brain\Monkey\Functions\expect('is_wc_endpoint_url') + ->with('123') + ->andReturn(true); require_once __DIR__ . '/../../../../includes/gateway/class-omise-payment-truemoney.php'; + $this->omise_capability_mock = Mockery::mock('alias:Omise_Capabilities'); } - public function testGetChargeRequest() + public function test_get_charge_request() { + $this->omise_capability_mock->shouldReceive('retrieve')->once(); + // set source type to truemoney wallet $obj = new Omise_Payment_Truemoney(); - - $orderId = 'order_123'; - $expectedAmount = 999999; - $expectedCurrency = 'thb'; - $orderMock = $this->getOrderMock($expectedAmount, $expectedCurrency); + $obj->source_type = 'truemoney'; + $order_id = 'order_123'; + $expected_amount = 999999; + $expected_currency = 'thb'; + $order_mock = $this->getOrderMock($expected_amount, $expected_currency); $_POST['omise_phone_number_default'] = true; - $result = $obj->get_charge_request($orderId, $orderMock); - - $this->assertEquals($orderMock->get_billing_phone(), $result['source']['phone_number']); + $result = $obj->get_charge_request($order_id, $order_mock); - unset($_POST['omise_phone_number_default']); - unset($obj); + $this->assertEquals($order_mock->get_billing_phone(), $result['source']['phone_number']); } - public function testGetChargeRequestWhenCustomerOverridesDefaultPhone() + public function test_get_charge_request_when_customer_overrides_default_phone() { - $obj = new Omise_Payment_Truemoney(); - - $orderId = 'order_123'; - $expectedAmount = 999999; - $expectedCurrency = 'thb'; - $orderMock = $this->getOrderMock($expectedAmount, $expectedCurrency); + $this->omise_capability_mock->shouldReceive('retrieve')->once(); + $order_id = 'order_123'; + $expected_amount = 999999; + $expected_currency = 'thb'; + $order_mock = $this->getOrderMock($expected_amount, $expected_currency); - $_POST['omise_phone_number_default'] = false; $_POST['omise_phone_number'] = '1234567890'; - - $result = $obj->get_charge_request($orderId, $orderMock); + + $obj = new Omise_Payment_Truemoney(); + $result = $obj->get_charge_request($order_id, $order_mock); $this->assertEquals($this->sourceType, $result['source']['type']); } - public function testCharge() + public function test_charge() { + $this->omise_capability_mock->shouldReceive('retrieve')->once(); $_POST['omise_phone_number_default'] = true; $obj = new Omise_Payment_Truemoney(); $this->getChargeTest($obj); } + + public function test_get_source_returns_jumpapp() + { + $this->omise_capability_mock->shouldReceive('retrieve'); + $obj = new Omise_Payment_Truemoney(); + $source_type = $obj->get_source(); + $this->assertEquals('truemoney_jumpapp', $source_type); + } + + public function test_get_source_returns_wallet() + { + $this->omise_capability_mock->shouldReceive('retrieve') + ->andReturn(new class() { + public function get_truemoney_backend($source_type) { + if ('truemoney' === $source_type) { + return (object)[ + 'truemoney' => [ + 'type' => 'truemoney', + 'currencies' => [ + 'thb' + ], + 'amount' => [ + 'min' => 2000, + 'max' => 500000000000 + ] + ] + ]; + } + + return null; + } + }); + + $obj = new Omise_Payment_Truemoney(); + $source_type = $obj->get_source(); + $this->assertEquals('truemoney', $source_type); + } + + public function test_get_source_returns_jumpapp_when_both_are_enabled() + { + $this->omise_capability_mock->shouldReceive('retrieve') + ->andReturn(new class() { + public function get_truemoney_backend($source_type) { + if ('truemoney' === $source_type) { + return (object)[ + 'truemoney' => [ + 'type' => 'truemoney', + 'currencies' => [ + 'thb' + ], + 'amount' => [ + 'min' => 2000, + 'max' => 500000000000 + ] + ] + ]; + } + + return (object)[ + 'truemoney_jumpapp' => [ + 'type' => 'truemoney_jumpapp', + 'currencies' => [ + 'thb' + ], + 'amount' => [ + 'min' => 2000, + 'max' => 500000000000 + ] + ] + ]; + } + }); + + $obj = new Omise_Payment_Truemoney(); + $source_type = $obj->get_source(); + $this->assertEquals('truemoney_jumpapp', $source_type); + } } From b459f062f30e4cbd29a5ebac549f653311ec2c03 Mon Sep 17 00:00:00 2001 From: Aashish Date: Thu, 11 Jan 2024 10:06:44 +0700 Subject: [PATCH 6/6] Preparing release of v5.7.0 by updating metadata --- CHANGELOG.md | 4 ++++ omise-woocommerce.php | 4 ++-- readme.txt | 7 ++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b4d396a..3d5072d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # CHANGELOG +## [v5.7.0 _(Jan 11, 2024)_](https://github.com/omise/omise-woocommerce/releases/tag/v5.7.0) +- Added TrueMoney jumpapp. (PR [#431](https://github.com/omise/omise-woocommerce/pull/431)) +- Updated README.md. (PR [#429](https://github.com/omise/omise-woocommerce/pull/429)) + ## [v5.6.2 _(Dec 7, 2023)_](https://github.com/omise/omise-woocommerce/releases/tag/v5.6.2) - Update OCBC digital logo. (PR [#422](https://github.com/omise/omise-woocommerce/pull/422)) - Update installment interest rates. (PR [#423](https://github.com/omise/omise-woocommerce/pull/423)) diff --git a/omise-woocommerce.php b/omise-woocommerce.php index 5eddd8e9..bd2e0938 100644 --- a/omise-woocommerce.php +++ b/omise-woocommerce.php @@ -4,7 +4,7 @@ * Plugin Name: Opn Payments * Plugin URI: https://www.omise.co/woocommerce * Description: Opn Payments is a WordPress plugin designed specifically for WooCommerce. The plugin adds support for Opn Payments Payment Gateway's payment methods to WooCommerce. - * Version: 5.6.2 + * Version: 5.7.0 * Author: Opn Payments and contributors * Author URI: https://github.com/omise/omise-woocommerce/graphs/contributors * Text Domain: omise @@ -22,7 +22,7 @@ class Omise * * @var string */ - public $version = '5.6.2'; + public $version = '5.7.0'; /** * The Omise Instance. diff --git a/readme.txt b/readme.txt index 2406bb42..3b460e29 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: Opn Payments Tags: opn payments, payment, payment gateway, woocommerce plugin, omise, opn, installment, internet banking, alipay, paynow, truemoney, woocommerce payment Requires at least: 4.3.1 Tested up to: 6.4.2 -Stable tag: 5.6.2 +Stable tag: 5.7.0 License: MIT License URI: https://opensource.org/licenses/MIT @@ -34,6 +34,11 @@ From there: == Changelog == += 5.7.0 = + +- Added TrueMoney jumpapp. (PR [#431](https://github.com/omise/omise-woocommerce/pull/431)) +- Updated README.md. (PR [#429](https://github.com/omise/omise-woocommerce/pull/429)) + = 5.6.2 = - Update OCBC digital logo. (PR [#422](https://github.com/omise/omise-woocommerce/pull/422))