diff --git a/changelog.txt b/changelog.txt
index 5a1306cdc..159eb9603 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,21 @@
*** Changelog ***
+= 1.9.5 - 2022-11-01 =
+* Fix - Invalid tracking number in logs when adding tracking #903
+* Fix - Tracking on Connection tab always enabled #900
+* Fix - PUI payment instructions printed in the refund email #873
+* Fix - Fix `thankyou_order_received` filter usage #899
+* Enhancement - Add SCA payment indicator for credit card renewals #847
+* Enhancement - Rename plugin settings tabs #893
+* Enhancement - Hide order button via class #921
+* Enhancement - Tracking integration compatibility with Germanized plugin #883
+* Enhancement - Onboarding buttons must be clicked multiple times after using PUI checkbox #851
+* Enhancement - Ratepay payment instructions added to non Pay upon Invoice orders #892
+* Enhancement - During PayPal express checkout PUI js file is loaded #905
+* Enhancement - PayPal Transaction Key meta field not populated for PUI payments #897
+* Enhancement - Onboard with PUI Checkbox automatically set when shop is set to Germany #876
+* Enhancement - Update all plugin strings #946
+
= 1.9.4 - 2022-10-11 =
* Add - Create new connection tab #801
* Add - Functionality to choose subscription failure behavior #728
diff --git a/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js b/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js
index 7e0b5a235..5c09b907d 100644
--- a/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js
+++ b/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js
@@ -233,8 +233,12 @@ class CreditCardRenderer {
this.spinner.unblock();
this.errorHandler.clear();
- if (err.details) {
+ if (err.details?.length) {
this.errorHandler.message(err.details.map(d => `${d.issue} ${d.description}`).join('
'), true);
+ } else if (err.message) {
+ this.errorHandler.message(err.message, true);
+ } else {
+ this.errorHandler.genericError();
}
});
} else {
diff --git a/modules/ppcp-wc-gateway/connection-tab-settings.php b/modules/ppcp-wc-gateway/connection-tab-settings.php
index c65814dad..8ec28d23e 100644
--- a/modules/ppcp-wc-gateway/connection-tab-settings.php
+++ b/modules/ppcp-wc-gateway/connection-tab-settings.php
@@ -347,14 +347,19 @@ return function ( ContainerInterface $container, array $fields ): array {
),
'credentials_feature_onboarding_heading' => array(
- 'heading' => __( 'Feature Onboarding', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Advanced feature availability & sign-up', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_ONBOARDED,
),
'requirements' => array(),
'gateway' => Settings::CONNECTION_TAB_ID,
- 'description' => __( 'See which features are available.', 'woocommerce-paypal-payments' ),
+ 'description' => sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Displays whether available advanced features are enabled for the connected PayPal account. More information about advanced features is available in the %1$sFeature sign-up documentation%2$s.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ ),
),
'ppcp_dcc_status' => array(
'title' => __( 'Advanced Credit and Debit Card Payments', 'woocommerce-paypal-payments' ),
@@ -367,7 +372,7 @@ return function ( ContainerInterface $container, array $fields ): array {
'gateway' => Settings::CONNECTION_TAB_ID,
),
'ppcp_pui_status' => array(
- 'title' => __( 'Pay Upon Invoice', 'woocommerce-paypal-payments' ),
+ 'title' => __( 'Pay upon Invoice', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-text',
'text' => $container->get( 'wcgateway.settings.connection.pui-status-text' ),
'screens' => array(
@@ -377,7 +382,7 @@ return function ( ContainerInterface $container, array $fields ): array {
'gateway' => Settings::CONNECTION_TAB_ID,
),
'tracking_enabled' => array(
- 'title' => __( 'Tracking', 'woocommerce-paypal-payments' ),
+ 'title' => __( 'Shipment Tracking', 'woocommerce-paypal-payments' ),
'type' => 'checkbox',
'desc_tip' => true,
'label' => $container->get( 'wcgateway.settings.tracking-label' ),
@@ -392,14 +397,19 @@ return function ( ContainerInterface $container, array $fields ): array {
),
'credentials_integration_configuration_heading' => array(
- 'heading' => __( 'Integration configuration', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'General integration configuration', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_ONBOARDED,
),
'requirements' => array(),
'gateway' => Settings::CONNECTION_TAB_ID,
- 'description' => __( 'See which features are available.', 'woocommerce-paypal-payments' ),
+ 'description' => sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Configure integration specific settings such as a unique invoice prefix, or logging for potential %1$stroubleshooting%2$s.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ ),
),
'prefix' => array(
'title' => __( 'Invoice prefix', 'woocommerce-paypal-payments' ),
diff --git a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js
index dea91a6db..993bba53a 100644
--- a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js
+++ b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js
@@ -141,10 +141,6 @@ import Renderer from '../../../ppcp-button/resources/js/modules/Renderer/Rendere
vaultingCheckboxes.forEach(node => node.addEventListener('change', togglePayLater));
- if(PayPalCommerceGatewaySettings.is_subscriptions_plugin_active !== '1') {
- document.getElementById('field-subscription_behavior_when_vault_fails').style.display = 'none';
- }
-
let oldScriptSettings = getPaypalScriptSettings();
form.on('change', ':input', debounce(() => {
diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php
index 386d3b613..492f2c88d 100644
--- a/modules/ppcp-wc-gateway/services.php
+++ b/modules/ppcp-wc-gateway/services.php
@@ -22,6 +22,7 @@ use WooCommerce\PayPalCommerce\Button\Helper\MessagesDisclaimers;
use WooCommerce\PayPalCommerce\Onboarding\Environment;
use WooCommerce\PayPalCommerce\Onboarding\Render\OnboardingOptionsRenderer;
use WooCommerce\PayPalCommerce\Onboarding\State;
+use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper;
use WooCommerce\PayPalCommerce\WcGateway\Admin\FeesRenderer;
use WooCommerce\PayPalCommerce\WcGateway\Admin\OrderTablePaymentStatusColumn;
use WooCommerce\PayPalCommerce\WcGateway\Admin\PaymentStatusOrderDetail;
@@ -409,6 +410,9 @@ return array(
';
};
+ $subscription_helper = $container->get( 'subscription.helper' );
+ assert( $subscription_helper instanceof SubscriptionHelper );
+
$fields = array(
'checkout_settings_heading' => array(
'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ),
@@ -622,7 +626,7 @@ return array(
'subscription_behavior_when_vault_fails' => array(
'title' => __( 'Subscription capture behavior if Vault fails', 'woocommerce-paypal-payments' ),
'type' => 'select',
- 'class' => array(),
+ 'classes' => $subscription_helper->plugin_is_active() ? array() : array( 'hide' ),
'input_class' => array( 'wc-enhanced-select' ),
'default' => 'void_auth',
'desc_tip' => true,
@@ -676,7 +680,7 @@ return array(
// General button styles.
'button_style_heading' => array(
- 'heading' => __( 'Checkout', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Checkout Buttons', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -684,7 +688,12 @@ return array(
),
'requirements' => array(),
'gateway' => 'paypal',
- 'description' => __( 'Customize the appearance of Standard Payments on the checkout page.', 'woocommerce-paypal-payments' ),
+ 'description' => sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Customize the appearance of the PayPal smart buttons on the %1$sCheckout page%2$s.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ ),
),
'button_enabled' => array(
'title' => __( 'Enable buttons on Checkout', 'woocommerce-paypal-payments' ),
@@ -753,7 +762,7 @@ return array(
),
'options' => array(
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
- 'checkout' => __( 'Standard Payments', 'woocommerce-paypal-payments' ),
+ 'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
),
@@ -820,7 +829,7 @@ return array(
'gateway' => 'paypal',
),
'message_heading' => array(
- 'heading' => __( 'Pay Later on Checkout', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Pay Later messaging on Checkout', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -828,7 +837,14 @@ return array(
),
'requirements' => array( 'messages' ),
'gateway' => 'paypal',
- 'description' => str_replace( '', '', __( 'Displays Pay Later messaging for available offers. Restrictions apply. Click here to learn more. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
+ 'description' => sprintf(
+ // translators: %1$s, %2$s, %3$s and %4$s are the opening and closing of HTML tag.
+ __( 'Displays Pay Later messaging on the Checkout page for available offers. Restrictions apply. %1$sClick here to learn more%2$s. This setting does not %3$sdisable the Pay Later button%4$s which will show for eligible buyers.', 'woocommerce-paypal-payments' ),
+ '',
+ '',
+ '',
+ ''
+ ),
'class' => array( 'ppcp-subheading' ),
),
'message_enabled' => array(
@@ -990,7 +1006,7 @@ return array(
// Single product page.
'button_product_heading' => array(
- 'heading' => __( 'Single Product Page', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Single Product Page Buttons', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -998,7 +1014,12 @@ return array(
),
'requirements' => array(),
'gateway' => 'paypal',
- 'description' => __( 'Customize the appearance of Standard Payments on the single product page.', 'woocommerce-paypal-payments' ),
+ 'description' => sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Customize the appearance of the PayPal smart buttons on the %1$sSingle Product Page%2$s.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ ),
),
'button_product_enabled' => array(
'title' => __( 'Enable buttons on Single Product', 'woocommerce-paypal-payments' ),
@@ -1067,7 +1088,7 @@ return array(
),
'options' => array(
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
- 'checkout' => __( 'Standard Payments', 'woocommerce-paypal-payments' ),
+ 'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
),
@@ -1135,7 +1156,7 @@ return array(
),
'message_product_heading' => array(
- 'heading' => __( 'Pay Later on Single Product Page', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Pay Later messaging on Single Product Page', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -1143,7 +1164,14 @@ return array(
),
'requirements' => array( 'messages' ),
'gateway' => 'paypal',
- 'description' => str_replace( '', '', __( 'Displays Pay Later messaging for available offers. Restrictions apply. Click here to learn more. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
+ 'description' => sprintf(
+ // translators: %1$s, %2$s, %3$s and %4$s are the opening and closing of HTML tag.
+ __( 'Displays Pay Later messaging on the Single Product Page for available offers. Restrictions apply. %1$sClick here to learn more%2$s. This setting does not %3$sdisable the Pay Later button%4$s which will show for eligible buyers.', 'woocommerce-paypal-payments' ),
+ '',
+ '',
+ '',
+ ''
+ ),
'class' => array( 'ppcp-subheading' ),
),
'message_product_enabled' => array(
@@ -1305,7 +1333,7 @@ return array(
// Cart settings.
'button_cart_heading' => array(
- 'heading' => __( 'Cart', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Cart Buttons', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -1313,10 +1341,15 @@ return array(
),
'requirements' => array(),
'gateway' => 'paypal',
- 'description' => __( 'Customize the appearance of Standard Payments on the cart page.', 'woocommerce-paypal-payments' ),
+ 'description' => sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Customize the appearance of the PayPal smart buttons %1$son the Cart page%2$s.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ ),
),
'button_cart_enabled' => array(
- 'title' => __( 'Buttons on Cart', 'woocommerce-paypal-payments' ),
+ 'title' => __( 'Enable buttons on Cart', 'woocommerce-paypal-payments' ),
'type' => 'checkbox',
'label' => __( 'Enable on Cart', 'woocommerce-paypal-payments' ),
'default' => true,
@@ -1382,7 +1415,7 @@ return array(
),
'options' => array(
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
- 'checkout' => __( 'Standard Payments', 'woocommerce-paypal-payments' ),
+ 'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
),
@@ -1450,7 +1483,7 @@ return array(
),
'message_cart_heading' => array(
- 'heading' => __( 'Pay Later on Cart', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Pay Later messaging on Cart', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -1458,7 +1491,14 @@ return array(
),
'requirements' => array( 'messages' ),
'gateway' => 'paypal',
- 'description' => str_replace( '', '', __( 'Displays Pay Later messaging for available offers. Restrictions apply. Click here to learn more. Pay Later button will show for eligible buyers and PayPal determines eligibility.', 'woocommerce-paypal-payments' ) ),
+ 'description' => sprintf(
+ // translators: %1$s, %2$s, %3$s and %4$s are the opening and closing of HTML tag.
+ __( 'Displays Pay Later messaging on the Cart page for available offers. Restrictions apply. %1$sClick here to learn more%2$s. This setting does not %3$sdisable the Pay Later button%4$s which will show for eligible buyers.', 'woocommerce-paypal-payments' ),
+ '',
+ '',
+ '',
+ ''
+ ),
'class' => array( 'ppcp-subheading' ),
),
'message_cart_enabled' => array(
@@ -1620,7 +1660,7 @@ return array(
// Mini cart settings.
'button_mini-cart_heading' => array(
- 'heading' => __( 'Mini Cart', 'woocommerce-paypal-payments' ),
+ 'heading' => __( 'Mini Cart Buttons', 'woocommerce-paypal-payments' ),
'type' => 'ppcp-heading',
'screens' => array(
State::STATE_START,
@@ -1628,10 +1668,15 @@ return array(
),
'requirements' => array(),
'gateway' => 'paypal',
- 'description' => __( 'Customize the appearance of Standard Payments on the Mini Cart.', 'woocommerce-paypal-payments' ),
+ 'description' => sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Customize the appearance of the PayPal smart buttons %1$son the Mini Cart page%2$s.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ ),
),
'button_mini-cart_enabled' => array(
- 'title' => __( 'Buttons on Mini Cart', 'woocommerce-paypal-payments' ),
+ 'title' => __( 'Enable buttons on Mini Cart', 'woocommerce-paypal-payments' ),
'type' => 'checkbox',
'label' => __( 'Enable on Mini Cart', 'woocommerce-paypal-payments' ),
'default' => true,
@@ -1697,7 +1742,7 @@ return array(
),
'options' => array(
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
- 'checkout' => __( 'Standard Payments', 'woocommerce-paypal-payments' ),
+ 'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
),
@@ -2238,7 +2283,12 @@ return array(
return false;
},
'wcgateway.settings.tracking-label' => static function ( ContainerInterface $container ): string {
- $tracking_label = __( 'Enable tracking information feature on your store.', 'woocommerce-paypal-payments' );
+ $tracking_label = sprintf(
+ // translators: %1$s and %2$s are the opening and closing of HTML tag.
+ __( 'Enable shipment tracking information to be sent to PayPal for seller protection features. Required when %1$sPay upon Invoice%2$s is used.', 'woocommerce-paypal-payments' ),
+ '',
+ ''
+ );
$is_tracking_available = $container->get( 'order-tracking.is-tracking-available' );
if ( $is_tracking_available ) {
@@ -2327,7 +2377,7 @@ return array(
$pui_button_text = $pui_enabled
? esc_html__( 'Settings', 'woocommerce-paypal-payments' )
- : esc_html__( 'Enable Pay Upon Invoice', 'woocommerce-paypal-payments' );
+ : esc_html__( 'Enable Pay upon Invoice', 'woocommerce-paypal-payments' );
return sprintf(
'
%1$s %2$s
', diff --git a/modules/ppcp-webhooks/extensions.php b/modules/ppcp-webhooks/extensions.php index 480c6474d..7368e3c89 100644 --- a/modules/ppcp-webhooks/extensions.php +++ b/modules/ppcp-webhooks/extensions.php @@ -23,7 +23,12 @@ return array( ), 'requirements' => array(), 'gateway' => Settings::CONNECTION_TAB_ID, - 'description' => __( 'Status of the webhooks subscription.', 'woocommerce-paypal-payments' ), + 'description' => sprintf( + // translators: %1$s and %2$s are the opening and closing of HTML tag. + __( 'Status of the webhooks subscription. More information about the webhooks is available in the %1$sWebhook Status documentation%2$s.', 'woocommerce-paypal-payments' ), + '', + '' + ), ), 'webhooks_list' => array( 'title' => __( 'Subscribed webhooks', 'woocommerce-paypal-payments' ), diff --git a/package.json b/package.json index a54c6823b..a5a90d7d8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "woocommerce-paypal-payments", - "version": "1.9.4", + "version": "1.9.5", "description": "WooCommerce PayPal Payments", "repository": "https://github.com/woocommerce/woocommerce-paypal-payments", "license": "GPL-2.0", diff --git a/readme.txt b/readme.txt index 84132db07..3834d39be 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: woocommerce, paypal, payments, ecommerce, e-commerce, store, sales, sell, Requires at least: 5.3 Tested up to: 6.0 Requires PHP: 7.1 -Stable tag: 1.9.4 +Stable tag: 1.9.5 License: GPLv2 License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -81,6 +81,22 @@ Follow the steps below to connect the plugin to your PayPal account: == Changelog == += 1.9.5 +* Fix - Invalid tracking number in logs when adding tracking #903 +* Fix - Tracking on Connection tab always enabled #900 +* Fix - PUI payment instructions printed in the refund email #873 +* Fix - Fix `thankyou_order_received` filter usage #899 +* Enhancement - Add SCA payment indicator for credit card renewals #847 +* Enhancement - Rename plugin settings tabs #893 +* Enhancement - Hide order button via class #921 +* Enhancement - Tracking integration compatibility with Germanized plugin #883 +* Enhancement - Onboarding buttons must be clicked multiple times after using PUI checkbox #851 +* Enhancement - Ratepay payment instructions added to non Pay upon Invoice orders #892 +* Enhancement - During PayPal express checkout PUI js file is loaded #905 +* Enhancement - PayPal Transaction Key meta field not populated for PUI payments #897 +* Enhancement - Onboard with PUI Checkbox automatically set when shop is set to Germany #876 +* Enhancement - Update all plugin strings #946 + = 1.9.4 = * Add - Create new connection tab #801 * Add - Functionality to choose subscription failure behavior #728 diff --git a/woocommerce-paypal-payments.php b/woocommerce-paypal-payments.php index 96d2c7336..71be57a0e 100644 --- a/woocommerce-paypal-payments.php +++ b/woocommerce-paypal-payments.php @@ -3,13 +3,13 @@ * Plugin Name: WooCommerce PayPal Payments * Plugin URI: https://woocommerce.com/products/woocommerce-paypal-payments/ * Description: PayPal's latest complete payments processing solution. Accept PayPal, Pay Later, credit/debit cards, alternative digital wallets local payment types and bank accounts. Turn on only PayPal options or process a full suite of payment methods. Enable global transaction with extensive currency and country coverage. - * Version: 1.9.4 + * Version: 1.9.5 * Author: WooCommerce * Author URI: https://woocommerce.com/ * License: GPL-2.0 * Requires PHP: 7.1 * WC requires at least: 3.9 - * WC tested up to: 6.9 + * WC tested up to: 7.0 * Text Domain: woocommerce-paypal-payments * * @package WooCommerce\PayPalCommerce