mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 18:16:38 +08:00
Merge branch 'trunk' into PCP-591-save-and-display-vaulted-payment-methods-in-woo-commerce-native-endpoint
This commit is contained in:
commit
e2f2d4cb05
15 changed files with 1058 additions and 833 deletions
|
@ -406,11 +406,9 @@ class SmartButton implements SmartButtonInterface {
|
||||||
*/
|
*/
|
||||||
private function render_button_wrapper_registrar(): bool {
|
private function render_button_wrapper_registrar(): bool {
|
||||||
|
|
||||||
$not_enabled_on_product_page = $this->settings->has( 'button_single_product_enabled' ) &&
|
|
||||||
! $this->settings->get( 'button_single_product_enabled' );
|
|
||||||
if (
|
if (
|
||||||
( is_product() || wc_post_content_has_shortcode( 'product_page' ) )
|
( is_product() || wc_post_content_has_shortcode( 'product_page' ) )
|
||||||
&& ! $not_enabled_on_product_page
|
&& $this->settings_status->is_smart_button_enabled_for_location( 'product' )
|
||||||
// TODO: it seems like there is no easy way to properly handle vaulted PayPal free trial,
|
// TODO: it seems like there is no easy way to properly handle vaulted PayPal free trial,
|
||||||
// so disable the buttons for now everywhere except checkout for free trial.
|
// so disable the buttons for now everywhere except checkout for free trial.
|
||||||
&& ! $this->is_free_trial_product()
|
&& ! $this->is_free_trial_product()
|
||||||
|
@ -435,10 +433,8 @@ class SmartButton implements SmartButtonInterface {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$not_enabled_on_minicart = $this->settings->has( 'button_mini_cart_enabled' ) &&
|
|
||||||
! $this->settings->get( 'button_mini_cart_enabled' );
|
|
||||||
if (
|
if (
|
||||||
! $not_enabled_on_minicart
|
$this->settings_status->is_smart_button_enabled_for_location( 'mini-cart' )
|
||||||
&& ! $this->is_free_trial_cart()
|
&& ! $this->is_free_trial_cart()
|
||||||
) {
|
) {
|
||||||
add_action(
|
add_action(
|
||||||
|
@ -479,12 +475,11 @@ class SmartButton implements SmartButtonInterface {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
$not_enabled_on_cart = $this->settings->has( 'button_cart_enabled' ) &&
|
$enabled_on_cart = $this->settings_status->is_smart_button_enabled_for_location( 'cart' );
|
||||||
! $this->settings->get( 'button_cart_enabled' );
|
|
||||||
add_action(
|
add_action(
|
||||||
$this->proceed_to_checkout_button_renderer_hook(),
|
$this->proceed_to_checkout_button_renderer_hook(),
|
||||||
function() use ( $not_enabled_on_cart ) {
|
function() use ( $enabled_on_cart ) {
|
||||||
if ( ! is_cart() || $not_enabled_on_cart || $this->is_free_trial_cart() || $this->is_cart_price_total_zero() ) {
|
if ( ! is_cart() || ! $enabled_on_cart || $this->is_free_trial_cart() || $this->is_cart_price_total_zero() ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -868,8 +863,8 @@ class SmartButton implements SmartButtonInterface {
|
||||||
'shipping_field' => _x( 'Shipping %s', 'checkout-validation', 'woocommerce' ),
|
'shipping_field' => _x( 'Shipping %s', 'checkout-validation', 'woocommerce' ),
|
||||||
),
|
),
|
||||||
'order_id' => 'pay-now' === $this->context() ? absint( $wp->query_vars['order-pay'] ) : 0,
|
'order_id' => 'pay-now' === $this->context() ? absint( $wp->query_vars['order-pay'] ) : 0,
|
||||||
'single_product_buttons_enabled' => $this->settings->has( 'button_product_enabled' ) && $this->settings->get( 'button_product_enabled' ),
|
'single_product_buttons_enabled' => $this->settings_status->is_smart_button_enabled_for_location( 'product' ),
|
||||||
'mini_cart_buttons_enabled' => $this->settings->has( 'button_mini-cart_enabled' ) && $this->settings->get( 'button_mini-cart_enabled' ),
|
'mini_cart_buttons_enabled' => $this->settings_status->is_smart_button_enabled_for_location( 'mini-cart' ),
|
||||||
'basic_checkout_validation_enabled' => $this->basic_checkout_validation_enabled,
|
'basic_checkout_validation_enabled' => $this->basic_checkout_validation_enabled,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -1050,45 +1045,21 @@ class SmartButton implements SmartButtonInterface {
|
||||||
* @throws NotFoundException If a setting has not been found.
|
* @throws NotFoundException If a setting has not been found.
|
||||||
*/
|
*/
|
||||||
private function load_button_component() : bool {
|
private function load_button_component() : bool {
|
||||||
$load_buttons = false;
|
$smart_button_enabled_for_current_location = $this->settings_status->is_smart_button_enabled_for_location( $this->context() );
|
||||||
if (
|
$smart_button_enabled_for_mini_cart = $this->settings_status->is_smart_button_enabled_for_location( 'mini-cart' );
|
||||||
$this->context() === 'checkout'
|
$messaging_enabled_for_current_location = $this->settings_status->is_pay_later_messaging_enabled_for_location( $this->context() );
|
||||||
&& $this->settings->has( 'button_enabled' )
|
|
||||||
&& $this->settings->get( 'button_enabled' )
|
|
||||||
) {
|
|
||||||
$load_buttons = true;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
$this->context() === 'product'
|
|
||||||
&& (
|
|
||||||
( $this->settings->has( 'button_product_enabled' ) && $this->settings->get( 'button_product_enabled' ) ) ||
|
|
||||||
( $this->settings_status->is_pay_later_messaging_enabled_for_location( 'product' ) )
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
$load_buttons = true;
|
|
||||||
}
|
|
||||||
if (
|
|
||||||
$this->settings->has( 'button_mini-cart_enabled' )
|
|
||||||
&& $this->settings->get( 'button_mini-cart_enabled' )
|
|
||||||
) {
|
|
||||||
$load_buttons = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (
|
switch ( $this->context() ) {
|
||||||
$this->context() === 'cart'
|
case 'checkout':
|
||||||
&& (
|
case 'cart':
|
||||||
( $this->settings->has( 'button_cart_enabled' ) && $this->settings->get( 'button_cart_enabled' ) ) ||
|
return $smart_button_enabled_for_current_location || $messaging_enabled_for_current_location;
|
||||||
( $this->settings_status->is_pay_later_messaging_enabled_for_location( 'cart' ) )
|
case 'product':
|
||||||
)
|
return $smart_button_enabled_for_current_location || $messaging_enabled_for_current_location || $smart_button_enabled_for_mini_cart;
|
||||||
) {
|
case 'pay-now':
|
||||||
$load_buttons = true;
|
return true;
|
||||||
|
default:
|
||||||
|
return $smart_button_enabled_for_mini_cart;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $this->context() === 'pay-now' ) {
|
|
||||||
$load_buttons = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $load_buttons;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1178,6 +1149,11 @@ class SmartButton implements SmartButtonInterface {
|
||||||
'tagline' => true,
|
'tagline' => true,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$enable_styling_per_location = $this->settings->has( 'smart_button_enable_styling_per_location' ) && $this->settings->get( 'smart_button_enable_styling_per_location' );
|
||||||
|
if ( ! $enable_styling_per_location ) {
|
||||||
|
$context = 'general';
|
||||||
|
}
|
||||||
|
|
||||||
$value = isset( $defaults[ $style ] ) ?
|
$value = isset( $defaults[ $style ] ) ?
|
||||||
$defaults[ $style ] : '';
|
$defaults[ $style ] : '';
|
||||||
$value = $this->settings->has( 'button_' . $style ) ?
|
$value = $this->settings->has( 'button_' . $style ) ?
|
||||||
|
|
|
@ -56,6 +56,7 @@ class CompatModule implements ModuleInterface {
|
||||||
add_action( 'admin_enqueue_scripts', array( $asset_loader, 'enqueue' ) );
|
add_action( 'admin_enqueue_scripts', array( $asset_loader, 'enqueue' ) );
|
||||||
|
|
||||||
$this->migrate_pay_later_settings( $c );
|
$this->migrate_pay_later_settings( $c );
|
||||||
|
$this->migrate_smart_button_settings( $c );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -201,19 +202,19 @@ class CompatModule implements ModuleInterface {
|
||||||
$disable_funding = $settings->has( 'disable_funding' ) ? $settings->get( 'disable_funding' ) : array();
|
$disable_funding = $settings->has( 'disable_funding' ) ? $settings->get( 'disable_funding' ) : array();
|
||||||
|
|
||||||
$available_messaging_locations = array_keys( $c->get( 'wcgateway.settings.pay-later.messaging-locations' ) );
|
$available_messaging_locations = array_keys( $c->get( 'wcgateway.settings.pay-later.messaging-locations' ) );
|
||||||
$available_button_locations = array_merge( $available_messaging_locations, array( 'mini-cart' ) );
|
$available_button_locations = array_keys( $c->get( 'wcgateway.button.locations' ) );
|
||||||
|
|
||||||
if ( in_array( 'credit', $disable_funding, true ) ) {
|
if ( in_array( 'credit', $disable_funding, true ) ) {
|
||||||
$settings->set( 'pay_later_button_enabled', false );
|
$settings->set( 'pay_later_button_enabled', false );
|
||||||
} else {
|
} else {
|
||||||
$settings->set( 'pay_later_button_enabled', true );
|
$settings->set( 'pay_later_button_enabled', true );
|
||||||
$selected_button_locations = $this->pay_later_selected_locations( $settings, $available_button_locations, 'button' );
|
$selected_button_locations = $this->selected_locations( $settings, $available_button_locations, 'button' );
|
||||||
if ( ! empty( $selected_button_locations ) ) {
|
if ( ! empty( $selected_button_locations ) ) {
|
||||||
$settings->set( 'pay_later_button_locations', $selected_button_locations );
|
$settings->set( 'pay_later_button_locations', $selected_button_locations );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$selected_messaging_locations = $this->pay_later_selected_locations( $settings, $available_messaging_locations, 'message' );
|
$selected_messaging_locations = $this->selected_locations( $settings, $available_messaging_locations, 'message' );
|
||||||
|
|
||||||
if ( ! empty( $selected_messaging_locations ) ) {
|
if ( ! empty( $selected_messaging_locations ) ) {
|
||||||
$settings->set( 'pay_later_messaging_enabled', true );
|
$settings->set( 'pay_later_messaging_enabled', true );
|
||||||
|
@ -261,26 +262,58 @@ class CompatModule implements ModuleInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds from old settings the locations, which should be selected for new Pay Later tab settings.
|
* Finds from old settings the selected locations for given type.
|
||||||
*
|
*
|
||||||
* @param Settings $settings The settings.
|
* @param Settings $settings The settings.
|
||||||
* @param string[] $all_locations The list of all available locations.
|
* @param string[] $all_locations The list of all available locations.
|
||||||
* @param string $setting The setting: 'button' or 'message'.
|
* @param string $type The setting type: 'button' or 'message'.
|
||||||
* @return string[] The list of locations, which should be selected.
|
* @return string[] The list of locations, which should be selected.
|
||||||
* @throws NotFoundException When setting was not found.
|
|
||||||
*/
|
*/
|
||||||
protected function pay_later_selected_locations( Settings $settings, array $all_locations, string $setting ): array {
|
protected function selected_locations( Settings $settings, array $all_locations, string $type ): array {
|
||||||
$pay_later_locations = array();
|
$button_locations = array();
|
||||||
|
|
||||||
foreach ( $all_locations as $location ) {
|
foreach ( $all_locations as $location ) {
|
||||||
$location_setting_name_part = $location === 'checkout' ? '' : "_{$location}";
|
$location_setting_name_part = $location === 'checkout' ? '' : "_{$location}";
|
||||||
$setting_name = "{$setting}{$location_setting_name_part}_enabled";
|
$setting_name = "{$type}{$location_setting_name_part}_enabled";
|
||||||
|
|
||||||
if ( $settings->has( $setting_name ) && $settings->get( $setting_name ) ) {
|
if ( $settings->has( $setting_name ) && $settings->get( $setting_name ) ) {
|
||||||
$pay_later_locations[] = $location;
|
$button_locations[] = $location;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $pay_later_locations;
|
return $button_locations;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Migrates the old smart button settings.
|
||||||
|
*
|
||||||
|
* The migration will be done on plugin upgrade if it hasn't already done.
|
||||||
|
*
|
||||||
|
* @param ContainerInterface $c The Container.
|
||||||
|
*/
|
||||||
|
protected function migrate_smart_button_settings( ContainerInterface $c ): void {
|
||||||
|
$is_smart_button_settings_migrated_option_name = 'woocommerce_ppcp-is_smart_button_settings_migrated';
|
||||||
|
$is_smart_button_settings_migrated = get_option( $is_smart_button_settings_migrated_option_name );
|
||||||
|
|
||||||
|
if ( $is_smart_button_settings_migrated ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
add_action(
|
||||||
|
'woocommerce_paypal_payments_gateway_migrate_on_update',
|
||||||
|
function () use ( $c, $is_smart_button_settings_migrated_option_name ) {
|
||||||
|
$settings = $c->get( 'wcgateway.settings' );
|
||||||
|
assert( $settings instanceof Settings );
|
||||||
|
|
||||||
|
$available_button_locations = array_keys( $c->get( 'wcgateway.button.locations' ) );
|
||||||
|
$selected_button_locations = $this->selected_locations( $settings, $available_button_locations, 'button' );
|
||||||
|
if ( ! empty( $selected_button_locations ) ) {
|
||||||
|
$settings->set( 'smart_button_locations', $selected_button_locations );
|
||||||
|
$settings->persist();
|
||||||
|
}
|
||||||
|
|
||||||
|
update_option( $is_smart_button_settings_migrated_option_name, true );
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,10 @@ document.addEventListener(
|
||||||
const payLaterMessagingLocationsSelect = payLaterMessagingLocationsSelector + ' select';
|
const payLaterMessagingLocationsSelect = payLaterMessagingLocationsSelector + ' select';
|
||||||
const payLaterMessagingEnabledSelector = '#ppcp-pay_later_messaging_enabled';
|
const payLaterMessagingEnabledSelector = '#ppcp-pay_later_messaging_enabled';
|
||||||
|
|
||||||
|
const smartButtonLocationsSelector = '#field-smart_button_locations';
|
||||||
|
const smartButtonLocationsSelect = smartButtonLocationsSelector + ' select';
|
||||||
|
const smartButtonSelectableLocations = payLaterMessagingSelectableLocations.concat('mini-cart');
|
||||||
|
|
||||||
const groupToggle = (selector, group) => {
|
const groupToggle = (selector, group) => {
|
||||||
const toggleElement = document.querySelector(selector);
|
const toggleElement = document.querySelector(selector);
|
||||||
if (! toggleElement) {
|
if (! toggleElement) {
|
||||||
|
@ -162,40 +166,57 @@ document.addEventListener(
|
||||||
replace();
|
replace();
|
||||||
};
|
};
|
||||||
|
|
||||||
const togglePayLaterMessagingInputsBySelectedLocations = (
|
const toggleInputsBySelectedLocations = (
|
||||||
stylingPerMessagingSelector,
|
stylingPerSelector,
|
||||||
messagingLocationsSelector,
|
locationsSelector,
|
||||||
groupToShowOnChecked,
|
groupToShowOnChecked,
|
||||||
groupToHideOnChecked
|
groupToHideOnChecked,
|
||||||
|
inputType
|
||||||
) => {
|
) => {
|
||||||
|
|
||||||
const payLaterMessagingEnabled = document.querySelector(payLaterMessagingEnabledSelector);
|
const payLaterMessagingEnabled = document.querySelector(payLaterMessagingEnabledSelector);
|
||||||
const stylingPerMessagingElement = document.querySelector(stylingPerMessagingSelector);
|
const stylingPerElement = document.querySelector(stylingPerSelector);
|
||||||
const messagingLocationsElement = document.querySelector(messagingLocationsSelector);
|
const locationsElement = document.querySelector(locationsSelector);
|
||||||
|
const stylingPerElementWrapper = stylingPerElement?.closest('tr');
|
||||||
|
const stylingPerElementWrapperSelector = '#'+ stylingPerElementWrapper?.getAttribute('id');
|
||||||
|
|
||||||
if (! stylingPerMessagingElement) {
|
if (! stylingPerElement) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const toggleElementsBySelectedLocations = () => {
|
const toggleElementsBySelectedLocations = () => {
|
||||||
if (! stylingPerMessagingElement.checked || ! payLaterMessagingEnabled.checked) {
|
stylingPerElementWrapper.style.display = '';
|
||||||
|
let selectedLocations = getSelectedLocations(locationsSelector);
|
||||||
|
let emptySmartButtonLocationMessage = jQuery('.ppcp-empty-smart-button-location');
|
||||||
|
|
||||||
|
if(selectedLocations.length === 0) {
|
||||||
|
hideElements(groupToHideOnChecked.concat(stylingPerElementWrapperSelector));
|
||||||
|
if (emptySmartButtonLocationMessage.length === 0) {
|
||||||
|
jQuery(PayPalCommerceSettings.empty_smart_button_location_message).insertAfter(jQuery(smartButtonLocationsSelector).find('.description'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! stylingPerElement.checked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let checkedLocations = document.querySelectorAll(messagingLocationsSelector + ' :checked');
|
if (inputType === 'messages' && ! payLaterMessagingEnabled.checked) {
|
||||||
const selectedLocations = [...checkedLocations].map(option => option.value);
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const messagingInputSelectors = payLaterMessagingInputSelectorsByLocations(selectedLocations);
|
const inputSelectors = inputSelectorsByLocations(selectedLocations, inputType);
|
||||||
|
|
||||||
groupToShowOnChecked.forEach( (element) => {
|
groupToShowOnChecked.forEach( (element) => {
|
||||||
if ( messagingInputSelectors.includes(element) ) {
|
if ( inputSelectors.includes(element) ) {
|
||||||
document.querySelector(element).style.display = '';
|
document.querySelector(element).style.display = '';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
document.querySelector(element).style.display = 'none';
|
document.querySelector(element).style.display = 'none';
|
||||||
})
|
})
|
||||||
|
|
||||||
togglePayLaterMessageFields();
|
if (inputType === 'messages') {
|
||||||
|
togglePayLaterMessageFields();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const hideElements = (selectroGroup) => {
|
const hideElements = (selectroGroup) => {
|
||||||
|
@ -210,14 +231,14 @@ document.addEventListener(
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
groupToggle(stylingPerMessagingSelector, groupToShowOnChecked);
|
groupToggle(stylingPerSelector, groupToShowOnChecked);
|
||||||
toggleElementsBySelectedLocations();
|
toggleElementsBySelectedLocations();
|
||||||
|
|
||||||
if (stylingPerMessagingElement.checked) {
|
if (stylingPerElement.checked) {
|
||||||
hideElements(groupToHideOnChecked);
|
hideElements(groupToHideOnChecked);
|
||||||
}
|
}
|
||||||
|
|
||||||
stylingPerMessagingElement.addEventListener(
|
stylingPerElement.addEventListener(
|
||||||
'change',
|
'change',
|
||||||
(event) => {
|
(event) => {
|
||||||
toggleElementsBySelectedLocations();
|
toggleElementsBySelectedLocations();
|
||||||
|
@ -227,20 +248,38 @@ document.addEventListener(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
showElements(groupToHideOnChecked);
|
let selectedLocations = getSelectedLocations(locationsSelector);
|
||||||
togglePayLaterMessageFields();
|
if(selectedLocations.length > 0) {
|
||||||
|
showElements(groupToHideOnChecked);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (inputType === 'messages') {
|
||||||
|
togglePayLaterMessageFields();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// We need to use jQuery here as the select might be a select2 element, which doesn't use native events.
|
// We need to use jQuery here as the select might be a select2 element, which doesn't use native events.
|
||||||
jQuery(messagingLocationsElement).on('change', toggleElementsBySelectedLocations);
|
jQuery(locationsElement).on('change', function (){
|
||||||
|
let emptySmartButtonLocationMessage = jQuery('.ppcp-empty-smart-button-location');
|
||||||
|
emptySmartButtonLocationMessage?.remove();
|
||||||
|
toggleElementsBySelectedLocations()
|
||||||
|
stylingPerElement.dispatchEvent(new Event('change'))
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const payLaterMessagingInputSelectorsByLocations = (locations) => {
|
const getSelectedLocations = (selector) => {
|
||||||
|
let checkedLocations = document.querySelectorAll(selector + ' :checked');
|
||||||
|
return [...checkedLocations].map(option => option.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
const inputSelectorsByLocations = (locations, inputType = 'messages') => {
|
||||||
let inputSelectros = [];
|
let inputSelectros = [];
|
||||||
|
|
||||||
locations.forEach( (location) => {
|
locations.forEach( (location) => {
|
||||||
inputSelectros = inputSelectros.concat(payLaterMessagingInputSelectorByLocation(location))
|
inputSelectros = inputType === 'messages'
|
||||||
|
? inputSelectros.concat(payLaterMessagingInputSelectorByLocation(location))
|
||||||
|
: inputSelectros.concat(butttonInputSelectorByLocation(location));
|
||||||
})
|
})
|
||||||
|
|
||||||
return inputSelectros
|
return inputSelectros
|
||||||
|
@ -264,8 +303,30 @@ document.addEventListener(
|
||||||
return inputSelectors
|
return inputSelectors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const butttonInputSelectorByLocation = (location) => {
|
||||||
|
const locationPrefix = location === 'checkout' ? '' : '_' + location;
|
||||||
|
const inputSelectors = [
|
||||||
|
'#field-button' + locationPrefix + '_layout',
|
||||||
|
'#field-button' + locationPrefix + '_tagline',
|
||||||
|
'#field-button' + locationPrefix + '_label',
|
||||||
|
'#field-button' + locationPrefix + '_color',
|
||||||
|
'#field-button' + locationPrefix + '_shape',
|
||||||
|
'#field-button' + locationPrefix + '_preview',
|
||||||
|
]
|
||||||
|
|
||||||
|
if (location !== 'general') {
|
||||||
|
inputSelectors.push('#field-button_' + location + '_heading');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (location === 'mini-cart') {
|
||||||
|
inputSelectors.push('#field-button' + locationPrefix + '_height');
|
||||||
|
}
|
||||||
|
|
||||||
|
return inputSelectors
|
||||||
|
}
|
||||||
|
|
||||||
const allPayLaterMessaginginputSelectors = () => {
|
const allPayLaterMessaginginputSelectors = () => {
|
||||||
let stylingInputSelectors = payLaterMessagingInputSelectorsByLocations(payLaterMessagingAllLocations);
|
let stylingInputSelectors = inputSelectorsByLocations(payLaterMessagingAllLocations);
|
||||||
|
|
||||||
return stylingInputSelectors.concat(payLaterMessagingLocationsSelector, '#field-pay_later_enable_styling_per_messaging_location');
|
return stylingInputSelectors.concat(payLaterMessagingLocationsSelector, '#field-pay_later_enable_styling_per_messaging_location');
|
||||||
}
|
}
|
||||||
|
@ -274,15 +335,16 @@ document.addEventListener(
|
||||||
const payLaterMessagingEnabled = document.querySelector(payLaterMessagingEnabledSelector);
|
const payLaterMessagingEnabled = document.querySelector(payLaterMessagingEnabledSelector);
|
||||||
const stylingPerMessagingElement = document.querySelector('#ppcp-pay_later_enable_styling_per_messaging_location');
|
const stylingPerMessagingElement = document.querySelector('#ppcp-pay_later_enable_styling_per_messaging_location');
|
||||||
|
|
||||||
if (! payLaterMessagingEnabled) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
groupToggle(
|
groupToggle(
|
||||||
payLaterMessagingEnabledSelector,
|
payLaterMessagingEnabledSelector,
|
||||||
allPayLaterMessaginginputSelectors()
|
allPayLaterMessaginginputSelectors()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (! payLaterMessagingEnabled) {
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
payLaterMessagingEnabled.addEventListener(
|
payLaterMessagingEnabled.addEventListener(
|
||||||
'change',
|
'change',
|
||||||
(event) => {
|
(event) => {
|
||||||
|
@ -296,68 +358,30 @@ document.addEventListener(
|
||||||
|
|
||||||
(() => {
|
(() => {
|
||||||
removeDisabledCardIcons('select[name="ppcp[disable_cards][]"]', 'select[name="ppcp[card_icons][]"]');
|
removeDisabledCardIcons('select[name="ppcp[disable_cards][]"]', 'select[name="ppcp[card_icons][]"]');
|
||||||
groupToggle(
|
|
||||||
'#ppcp-button_enabled',
|
|
||||||
[
|
|
||||||
'#field-button_layout',
|
|
||||||
'#field-button_tagline',
|
|
||||||
'#field-button_label',
|
|
||||||
'#field-button_color',
|
|
||||||
'#field-button_shape',
|
|
||||||
'#field-button_preview',
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
groupToggle(
|
groupToggle(
|
||||||
'#ppcp-pay_later_button_enabled',
|
'#ppcp-pay_later_button_enabled',
|
||||||
['#field-pay_later_button_locations']
|
['#field-pay_later_button_locations']
|
||||||
);
|
);
|
||||||
|
|
||||||
toggleMessagingEnabled();
|
toggleInputsBySelectedLocations(
|
||||||
|
|
||||||
togglePayLaterMessagingInputsBySelectedLocations(
|
|
||||||
'#ppcp-pay_later_enable_styling_per_messaging_location',
|
'#ppcp-pay_later_enable_styling_per_messaging_location',
|
||||||
payLaterMessagingLocationsSelect,
|
payLaterMessagingLocationsSelect,
|
||||||
payLaterMessagingInputSelectorsByLocations(payLaterMessagingSelectableLocations),
|
inputSelectorsByLocations(payLaterMessagingSelectableLocations),
|
||||||
payLaterMessagingInputSelectorsByLocations(['general']),
|
inputSelectorsByLocations(['general']),
|
||||||
|
'messages'
|
||||||
);
|
);
|
||||||
|
|
||||||
groupToggle(
|
toggleInputsBySelectedLocations(
|
||||||
'#ppcp-button_product_enabled',
|
'#ppcp-smart_button_enable_styling_per_location',
|
||||||
[
|
smartButtonLocationsSelect,
|
||||||
'#field-button_product_layout',
|
inputSelectorsByLocations(smartButtonSelectableLocations, 'buttons'),
|
||||||
'#field-button_product_tagline',
|
inputSelectorsByLocations(['general'], 'buttons'),
|
||||||
'#field-button_product_label',
|
'buttons'
|
||||||
'#field-button_product_color',
|
|
||||||
'#field-button_product_shape',
|
|
||||||
'#field-button_product_preview',
|
|
||||||
]
|
|
||||||
);
|
);
|
||||||
|
|
||||||
groupToggle(
|
toggleMessagingEnabled();
|
||||||
'#ppcp-button_mini-cart_enabled',
|
|
||||||
[
|
|
||||||
'#field-button_mini-cart_layout',
|
|
||||||
'#field-button_mini-cart_tagline',
|
|
||||||
'#field-button_mini-cart_label',
|
|
||||||
'#field-button_mini-cart_color',
|
|
||||||
'#field-button_mini-cart_shape',
|
|
||||||
'#field-button_mini-cart_height',
|
|
||||||
'#field-button_mini-cart_preview',
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
groupToggle(
|
|
||||||
'#ppcp-button_cart_enabled',
|
|
||||||
[
|
|
||||||
'#field-button_cart_layout',
|
|
||||||
'#field-button_cart_tagline',
|
|
||||||
'#field-button_cart_label',
|
|
||||||
'#field-button_cart_color',
|
|
||||||
'#field-button_cart_shape',
|
|
||||||
'#field-button_cart_preview',
|
|
||||||
]
|
|
||||||
);
|
|
||||||
|
|
||||||
groupToggle(
|
groupToggle(
|
||||||
'#ppcp-vault_enabled',
|
'#ppcp-vault_enabled',
|
||||||
|
@ -366,7 +390,6 @@ document.addEventListener(
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
groupToggleSelect(
|
groupToggleSelect(
|
||||||
'#ppcp-intent',
|
'#ppcp-intent',
|
||||||
[
|
[
|
||||||
|
|
|
@ -110,6 +110,16 @@ class OnboardingAssets {
|
||||||
$this->version,
|
$this->version,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
wp_localize_script(
|
||||||
|
'ppcp-settings',
|
||||||
|
'PayPalCommerceSettings',
|
||||||
|
array(
|
||||||
|
'empty_smart_button_location_message' => sprintf(
|
||||||
|
'<p class="description ppcp-empty-smart-button-location">%1$s</p>',
|
||||||
|
__( 'Note: If no button location is selected, the PayPal gateway will not be available.', 'woocommerce-paypal-payments' )
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
$url = untrailingslashit( $this->module_url ) . '/assets/js/onboarding.js';
|
$url = untrailingslashit( $this->module_url ) . '/assets/js/onboarding.js';
|
||||||
wp_register_script(
|
wp_register_script(
|
||||||
|
|
|
@ -102,12 +102,17 @@ return array(
|
||||||
},
|
},
|
||||||
|
|
||||||
'wcgateway.settings.fields' => function ( ContainerInterface $container, array $fields ): array {
|
'wcgateway.settings.fields' => function ( ContainerInterface $container, array $fields ): array {
|
||||||
$get_connection_tab_fields = require __DIR__ . '/connection-tab-settings.php';
|
$path_to_settings_fields = __DIR__ . '/src/Settings/Fields';
|
||||||
|
|
||||||
|
$get_paypal_button_fields = require $path_to_settings_fields . '/paypal-smart-button-fields.php';
|
||||||
|
$paypal_button_fields = $get_paypal_button_fields( $container, $fields ) ?? array();
|
||||||
|
|
||||||
|
$get_connection_tab_fields = require $path_to_settings_fields . '/connection-tab-fields.php';
|
||||||
$connection_tab_fields = $get_connection_tab_fields( $container, $fields ) ?? array();
|
$connection_tab_fields = $get_connection_tab_fields( $container, $fields ) ?? array();
|
||||||
|
|
||||||
$get_pay_later_tab_fields = require __DIR__ . '/pay-later-tab-settings.php';
|
$get_pay_later_tab_fields = require $path_to_settings_fields . '/pay-later-tab-fields.php';
|
||||||
$pay_later_tab_fields = $get_pay_later_tab_fields( $container, $fields ) ?? array();
|
$pay_later_tab_fields = $get_pay_later_tab_fields( $container, $fields ) ?? array();
|
||||||
|
|
||||||
return array_merge( $connection_tab_fields, $pay_later_tab_fields );
|
return array_merge( $paypal_button_fields, $connection_tab_fields, $pay_later_tab_fields );
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
@media (min-width: 1200px) {
|
@media (min-width: 1200px) {
|
||||||
float: right;
|
float: right;
|
||||||
margin-top: -400px;
|
margin-top: -300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 1400px) {
|
@media (min-width: 1400px) {
|
||||||
|
@ -29,12 +29,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ppcp-message-preview {
|
|
||||||
@media (min-width: 1200px) {
|
|
||||||
margin-top: -300px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.ppcp-button-preview.pay-later {
|
.ppcp-button-preview.pay-later {
|
||||||
@media (min-width: 1200px) {
|
@media (min-width: 1200px) {
|
||||||
margin-top: -250px;
|
margin-top: -250px;
|
||||||
|
|
|
@ -45,11 +45,13 @@ import {setVisibleByClass, isVisible} from "../../../ppcp-button/resources/js/mo
|
||||||
if (separateCardButtonCheckbox) {
|
if (separateCardButtonCheckbox) {
|
||||||
separateCardButtonCheckbox.addEventListener('change', () => {
|
separateCardButtonCheckbox.addEventListener('change', () => {
|
||||||
setVisibleByClass('#field-button_layout', !separateCardButtonCheckbox.checked, 'hide');
|
setVisibleByClass('#field-button_layout', !separateCardButtonCheckbox.checked, 'hide');
|
||||||
|
setVisibleByClass('#field-button_general_layout', !separateCardButtonCheckbox.checked, 'hide');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
[
|
[
|
||||||
{layoutSelector: '#ppcp-button_layout', taglineSelector: '#field-button_tagline', canHaveSeparateButtons: true},
|
{layoutSelector: '#ppcp-button_layout', taglineSelector: '#field-button_tagline', canHaveSeparateButtons: true},
|
||||||
|
{layoutSelector: '#ppcp-button_general_layout', taglineSelector: '#field-button_general_tagline', canHaveSeparateButtons: true},
|
||||||
{layoutSelector: '#ppcp-button_product_layout', taglineSelector: '#field-button_product_tagline'},
|
{layoutSelector: '#ppcp-button_product_layout', taglineSelector: '#field-button_product_tagline'},
|
||||||
{layoutSelector: '#ppcp-button_cart_layout', taglineSelector: '#field-button_cart_tagline'},
|
{layoutSelector: '#ppcp-button_cart_layout', taglineSelector: '#field-button_cart_tagline'},
|
||||||
{layoutSelector: '#ppcp-button_mini-cart_layout', taglineSelector: '#field-button_mini-cart_tagline'},
|
{layoutSelector: '#ppcp-button_mini-cart_layout', taglineSelector: '#field-button_mini-cart_tagline'},
|
||||||
|
@ -262,7 +264,7 @@ import {setVisibleByClass, isVisible} from "../../../ppcp-button/resources/js/mo
|
||||||
|
|
||||||
loadPaypalScript(oldScriptSettings, () => {
|
loadPaypalScript(oldScriptSettings, () => {
|
||||||
const payLaterMessagingLocations = ['product', 'cart', 'checkout', 'general'];
|
const payLaterMessagingLocations = ['product', 'cart', 'checkout', 'general'];
|
||||||
const paypalButtonLocations = ['product', 'cart', 'checkout', 'mini-cart'];
|
const paypalButtonLocations = ['product', 'cart', 'checkout', 'mini-cart', 'general'];
|
||||||
|
|
||||||
paypalButtonLocations.forEach((location) => {
|
paypalButtonLocations.forEach((location) => {
|
||||||
const inputNamePrefix = location === 'checkout' ? '#ppcp-button' : '#ppcp-button_' + location;
|
const inputNamePrefix = location === 'checkout' ? '#ppcp-button' : '#ppcp-button_' + location;
|
||||||
|
|
|
@ -144,7 +144,8 @@ return array(
|
||||||
'wcgateway.disabler' => static function ( ContainerInterface $container ): DisableGateways {
|
'wcgateway.disabler' => static function ( ContainerInterface $container ): DisableGateways {
|
||||||
$session_handler = $container->get( 'session.handler' );
|
$session_handler = $container->get( 'session.handler' );
|
||||||
$settings = $container->get( 'wcgateway.settings' );
|
$settings = $container->get( 'wcgateway.settings' );
|
||||||
return new DisableGateways( $session_handler, $settings );
|
$settings_status = $container->get( 'wcgateway.settings.status' );
|
||||||
|
return new DisableGateways( $session_handler, $settings, $settings_status );
|
||||||
},
|
},
|
||||||
|
|
||||||
'wcgateway.is-wc-payments-page' => static function ( ContainerInterface $container ): bool {
|
'wcgateway.is-wc-payments-page' => static function ( ContainerInterface $container ): bool {
|
||||||
|
@ -196,8 +197,8 @@ return array(
|
||||||
},
|
},
|
||||||
|
|
||||||
'wcgateway.settings' => static function ( ContainerInterface $container ): Settings {
|
'wcgateway.settings' => static function ( ContainerInterface $container ): Settings {
|
||||||
$messaging_locations = $container->get( 'wcgateway.settings.pay-later.messaging-locations' );
|
$default_button_locations = $container->get( 'wcgateway.button.default-locations' );
|
||||||
return new Settings( array_keys( $messaging_locations ) );
|
return new Settings( $default_button_locations );
|
||||||
},
|
},
|
||||||
'wcgateway.notice.connect' => static function ( ContainerInterface $container ): ConnectAdminNotice {
|
'wcgateway.notice.connect' => static function ( ContainerInterface $container ): ConnectAdminNotice {
|
||||||
$state = $container->get( 'onboarding.state' );
|
$state = $container->get( 'onboarding.state' );
|
||||||
|
@ -434,19 +435,9 @@ return array(
|
||||||
$onboarding_options_renderer = $container->get( 'onboarding.render-options' );
|
$onboarding_options_renderer = $container->get( 'onboarding.render-options' );
|
||||||
assert( $onboarding_options_renderer instanceof OnboardingOptionsRenderer );
|
assert( $onboarding_options_renderer instanceof OnboardingOptionsRenderer );
|
||||||
|
|
||||||
$render_preview_element = function ( string $id ): string {
|
|
||||||
return '
|
|
||||||
<div class="ppcp-preview ppcp-button-preview">
|
|
||||||
<h4>' . __( 'Preview', 'woocommerce-paypal-payments' ) . '</h4>
|
|
||||||
<div id="' . $id . '" class="ppcp-button-preview-inner"></div>
|
|
||||||
</div>';
|
|
||||||
};
|
|
||||||
|
|
||||||
$subscription_helper = $container->get( 'subscription.helper' );
|
$subscription_helper = $container->get( 'subscription.helper' );
|
||||||
assert( $subscription_helper instanceof SubscriptionHelper );
|
assert( $subscription_helper instanceof SubscriptionHelper );
|
||||||
|
|
||||||
$has_enabled_separate_button_gateways = $container->get( 'wcgateway.settings.has_enabled_separate_button_gateways' );
|
|
||||||
|
|
||||||
$fields = array(
|
$fields = array(
|
||||||
'checkout_settings_heading' => array(
|
'checkout_settings_heading' => array(
|
||||||
'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ),
|
'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ),
|
||||||
|
@ -712,627 +703,6 @@ return array(
|
||||||
'gateway' => 'paypal',
|
'gateway' => 'paypal',
|
||||||
),
|
),
|
||||||
|
|
||||||
// General button styles.
|
|
||||||
'button_style_heading' => array(
|
|
||||||
'heading' => __( 'Checkout Buttons', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'ppcp-heading',
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
'description' => sprintf(
|
|
||||||
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
|
||||||
__( 'Customize the appearance of the PayPal smart buttons on the %1$sCheckout page%2$s.', 'woocommerce-paypal-payments' ),
|
|
||||||
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-checkout" target="_blank">',
|
|
||||||
'</a>'
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'button_enabled' => array(
|
|
||||||
'title' => __( 'Enable buttons on Checkout', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable on Checkout', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => true,
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_layout' => array(
|
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'classes' => $has_enabled_separate_button_gateways ? array( 'hide' ) : array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'vertical',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'If additional funding sources are available to the buyer through PayPal, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
|
||||||
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_tagline' => array(
|
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'default' => false,
|
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_label' => array(
|
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
/**
|
|
||||||
* Returns default label ID of the PayPal button.
|
|
||||||
*/
|
|
||||||
'default' => apply_filters( 'woocommerce_paypal_payments_button_label_default', 'paypal' ),
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'This controls the label on the primary button.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
|
||||||
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
|
||||||
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_color' => array(
|
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'gold',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
|
||||||
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
|
||||||
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
|
||||||
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_shape' => array(
|
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'rect',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
|
||||||
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_preview' => array(
|
|
||||||
'type' => 'ppcp-text',
|
|
||||||
'text' => $render_preview_element( 'ppcpCheckoutButtonPreview' ),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
|
|
||||||
// Single product page.
|
|
||||||
'button_product_heading' => array(
|
|
||||||
'heading' => __( 'Single Product Page Buttons', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'ppcp-heading',
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
'description' => sprintf(
|
|
||||||
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
|
||||||
__( 'Customize the appearance of the PayPal smart buttons on the %1$sSingle Product Page%2$s.', 'woocommerce-paypal-payments' ),
|
|
||||||
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-single-product" target="_blank">',
|
|
||||||
'</a>'
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'button_product_enabled' => array(
|
|
||||||
'title' => __( 'Enable buttons on Single Product', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable on Single Product', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => true,
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_product_layout' => array(
|
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'horizontal',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'If additional funding sources are available to the buyer through PayPal, such as Venmo, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
|
||||||
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_product_tagline' => array(
|
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => false,
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_product_label' => array(
|
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
/**
|
|
||||||
* Returns default label ID of the PayPal button on product pages.
|
|
||||||
*/
|
|
||||||
'default' => apply_filters( 'woocommerce_paypal_payments_button_product_label_default', 'paypal' ),
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'This controls the label on the primary button.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
|
||||||
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
|
||||||
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_product_color' => array(
|
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'gold',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
|
||||||
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
|
||||||
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
|
||||||
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_product_shape' => array(
|
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'rect',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
|
||||||
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_product_preview' => array(
|
|
||||||
'type' => 'ppcp-text',
|
|
||||||
'text' => $render_preview_element( 'ppcpProductButtonPreview' ),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
|
|
||||||
// Cart settings.
|
|
||||||
'button_cart_heading' => array(
|
|
||||||
'heading' => __( 'Cart Buttons', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'ppcp-heading',
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
'description' => sprintf(
|
|
||||||
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
|
||||||
__( 'Customize the appearance of the PayPal smart buttons %1$son the Cart page%2$s.', 'woocommerce-paypal-payments' ),
|
|
||||||
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-cart" target="_blank">',
|
|
||||||
'</a>'
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'button_cart_enabled' => array(
|
|
||||||
'title' => __( 'Enable buttons on Cart', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable on Cart', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => true,
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_cart_layout' => array(
|
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'horizontal',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'If additional funding sources are available to the buyer through PayPal, such as Venmo, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
|
||||||
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_cart_tagline' => array(
|
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => false,
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_cart_label' => array(
|
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
/**
|
|
||||||
* Returns default label ID of the PayPal button in cart.
|
|
||||||
*/
|
|
||||||
'default' => apply_filters( 'woocommerce_paypal_payments_button_cart_label_default', 'paypal' ),
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'This controls the label on the primary button.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
|
||||||
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
|
||||||
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_cart_color' => array(
|
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'gold',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
|
||||||
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
|
||||||
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
|
||||||
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_cart_shape' => array(
|
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'rect',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
|
||||||
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_cart_preview' => array(
|
|
||||||
'type' => 'ppcp-text',
|
|
||||||
'text' => $render_preview_element( 'ppcpCartButtonPreview' ),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
|
|
||||||
// Mini cart settings.
|
|
||||||
'button_mini-cart_heading' => array(
|
|
||||||
'heading' => __( 'Mini Cart Buttons', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'ppcp-heading',
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
'description' => sprintf(
|
|
||||||
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
|
||||||
__( 'Customize the appearance of the PayPal smart buttons %1$son the Mini Cart page%2$s.', 'woocommerce-paypal-payments' ),
|
|
||||||
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-mini-cart" target="_blank">',
|
|
||||||
'</a>'
|
|
||||||
),
|
|
||||||
),
|
|
||||||
'button_mini-cart_enabled' => array(
|
|
||||||
'title' => __( 'Enable buttons on Mini Cart', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable on Mini Cart', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => false,
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_layout' => array(
|
|
||||||
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'vertical',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'If additional funding sources are available to the buyer through PayPal, such as Venmo, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
|
||||||
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_tagline' => array(
|
|
||||||
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'checkbox',
|
|
||||||
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
|
||||||
'default' => false,
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_label' => array(
|
|
||||||
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
/**
|
|
||||||
* Returns default label ID of the PayPal button in mini cart.
|
|
||||||
*/
|
|
||||||
'default' => apply_filters( 'woocommerce_paypal_payments_button_mini_cart_label_default', 'paypal' ),
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'This controls the label on the primary button.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
|
||||||
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
|
||||||
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_color' => array(
|
|
||||||
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'gold',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
|
||||||
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
|
||||||
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
|
||||||
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_shape' => array(
|
|
||||||
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'select',
|
|
||||||
'class' => array(),
|
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
|
||||||
'default' => 'rect',
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __(
|
|
||||||
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
|
||||||
'woocommerce-paypal-payments'
|
|
||||||
),
|
|
||||||
'options' => array(
|
|
||||||
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
|
||||||
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
|
||||||
),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_height' => array(
|
|
||||||
'title' => __( 'Button Height', 'woocommerce-paypal-payments' ),
|
|
||||||
'type' => 'number',
|
|
||||||
'default' => '35',
|
|
||||||
'custom_attributes' => array(
|
|
||||||
'min' => 25,
|
|
||||||
'max' => 55,
|
|
||||||
),
|
|
||||||
'desc_tip' => true,
|
|
||||||
'description' => __( 'Add a value from 25 to 55.', 'woocommerce-paypal-payments' ),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_START,
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
'button_mini-cart_preview' => array(
|
|
||||||
'type' => 'ppcp-text',
|
|
||||||
'text' => $render_preview_element( 'ppcpMiniCartButtonPreview' ),
|
|
||||||
'screens' => array(
|
|
||||||
State::STATE_ONBOARDED,
|
|
||||||
),
|
|
||||||
'requirements' => array(),
|
|
||||||
'gateway' => 'paypal',
|
|
||||||
),
|
|
||||||
|
|
||||||
'disable_cards' => array(
|
'disable_cards' => array(
|
||||||
'title' => __( 'Disable specific credit cards', 'woocommerce-paypal-payments' ),
|
'title' => __( 'Disable specific credit cards', 'woocommerce-paypal-payments' ),
|
||||||
'type' => 'ppcp-multiselect',
|
'type' => 'ppcp-multiselect',
|
||||||
|
@ -1889,41 +1259,45 @@ return array(
|
||||||
'dcc.status-cache' => static function( ContainerInterface $container ): Cache {
|
'dcc.status-cache' => static function( ContainerInterface $container ): Cache {
|
||||||
return new Cache( 'ppcp-paypal-dcc-status-cache' );
|
return new Cache( 'ppcp-paypal-dcc-status-cache' );
|
||||||
},
|
},
|
||||||
'wcgateway.settings.pay-later.messaging-locations' => static function( ContainerInterface $container ): array {
|
'wcgateway.button.locations' => static function( ContainerInterface $container ): array {
|
||||||
return array(
|
return array(
|
||||||
'product' => 'Single Product',
|
'product' => 'Single Product',
|
||||||
'cart' => 'Cart',
|
'cart' => 'Cart',
|
||||||
'checkout' => 'Checkout',
|
'checkout' => 'Checkout',
|
||||||
|
'mini-cart' => 'Mini Cart',
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
'wcgateway.settings.pay-later.messaging-locations' => static function( ContainerInterface $container ): array {
|
||||||
|
$button_locations = $container->get( 'wcgateway.button.locations' );
|
||||||
|
unset( $button_locations['mini-cart'] );
|
||||||
|
return $button_locations;
|
||||||
|
},
|
||||||
|
'wcgateway.button.default-locations' => static function( ContainerInterface $container ): array {
|
||||||
|
return array_keys( $container->get( 'wcgateway.settings.pay-later.messaging-locations' ) );
|
||||||
|
},
|
||||||
'wcgateway.settings.pay-later.button-locations' => static function( ContainerInterface $container ): array {
|
'wcgateway.settings.pay-later.button-locations' => static function( ContainerInterface $container ): array {
|
||||||
$button_locations = array();
|
|
||||||
|
|
||||||
$settings = $container->get( 'wcgateway.settings' );
|
$settings = $container->get( 'wcgateway.settings' );
|
||||||
assert( $settings instanceof Settings );
|
assert( $settings instanceof Settings );
|
||||||
|
|
||||||
$is_product_buttons_enabled = $settings->has( 'button_product_enabled' ) && $settings->get( 'button_product_enabled' );
|
$button_locations = $container->get( 'wcgateway.button.locations' );
|
||||||
$is_mini_cart_buttons_enabled = $settings->has( 'button_mini-cart_enabled' ) && $settings->get( 'button_mini-cart_enabled' );
|
unset( $button_locations['mini-cart'] );
|
||||||
$is_cart_buttons_enabled = $settings->has( 'button_cart_enabled' ) && $settings->get( 'button_cart_enabled' );
|
|
||||||
$is_checkout_buttons_enabled = $settings->has( 'button_enabled' ) && $settings->get( 'button_enabled' );
|
|
||||||
|
|
||||||
if ( $is_product_buttons_enabled ) {
|
$smart_button_selected_locations = $settings->has( 'smart_button_locations' ) ? $settings->get( 'smart_button_locations' ) : array();
|
||||||
$button_locations['product'] = 'Single Product';
|
$pay_later_button_locations = array();
|
||||||
|
|
||||||
|
if ( empty( $smart_button_selected_locations ) ) {
|
||||||
|
return $pay_later_button_locations;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $is_mini_cart_buttons_enabled ) {
|
foreach ( $button_locations as $location_key => $location ) {
|
||||||
$button_locations['mini-cart'] = 'Mini Cart';
|
if ( ! in_array( $location_key, $smart_button_selected_locations, true ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$pay_later_button_locations[ $location_key ] = $location;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $is_cart_buttons_enabled ) {
|
return $pay_later_button_locations;
|
||||||
$button_locations['cart'] = 'Cart';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( $is_checkout_buttons_enabled ) {
|
|
||||||
$button_locations['checkout'] = 'Checkout';
|
|
||||||
}
|
|
||||||
|
|
||||||
return $button_locations;
|
|
||||||
},
|
},
|
||||||
'wcgateway.ppcp-gateways' => static function ( ContainerInterface $container ): array {
|
'wcgateway.ppcp-gateways' => static function ( ContainerInterface $container ): array {
|
||||||
return array(
|
return array(
|
||||||
|
|
|
@ -14,6 +14,7 @@ use WooCommerce\PayPalCommerce\WcGateway\Gateway\CardButtonGateway;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
||||||
|
use WooCommerce\PayPalCommerce\WcGateway\Helper\SettingsStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class DisableGateways
|
* Class DisableGateways
|
||||||
|
@ -34,19 +35,29 @@ class DisableGateways {
|
||||||
*/
|
*/
|
||||||
private $settings;
|
private $settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The Settings status helper.
|
||||||
|
*
|
||||||
|
* @var SettingsStatus
|
||||||
|
*/
|
||||||
|
protected $settings_status;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DisableGateways constructor.
|
* DisableGateways constructor.
|
||||||
*
|
*
|
||||||
* @param SessionHandler $session_handler The Session Handler.
|
* @param SessionHandler $session_handler The Session Handler.
|
||||||
* @param ContainerInterface $settings The Settings.
|
* @param ContainerInterface $settings The Settings.
|
||||||
|
* @param SettingsStatus $settings_status The Settings status helper.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
SessionHandler $session_handler,
|
SessionHandler $session_handler,
|
||||||
ContainerInterface $settings
|
ContainerInterface $settings,
|
||||||
|
SettingsStatus $settings_status
|
||||||
) {
|
) {
|
||||||
|
|
||||||
$this->session_handler = $session_handler;
|
$this->session_handler = $session_handler;
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
|
$this->settings_status = $settings_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -71,7 +82,7 @@ class DisableGateways {
|
||||||
unset( $methods[ CreditCardGateway::ID ] );
|
unset( $methods[ CreditCardGateway::ID ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $this->settings->has( 'button_enabled' ) && ! $this->settings->get( 'button_enabled' ) && ! $this->session_handler->order() && is_checkout() ) {
|
if ( ! $this->settings_status->is_smart_button_enabled_for_location( 'checkout' ) && ! $this->session_handler->order() && is_checkout() ) {
|
||||||
unset( $methods[ PayPalGateway::ID ] );
|
unset( $methods[ PayPalGateway::ID ] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,7 +271,7 @@ class PayPalGateway extends \WC_Payment_Gateway {
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'desc_tip' => true,
|
'desc_tip' => true,
|
||||||
'description' => __( 'In order to use PayPal or Advanced Card Processing, you need to enable the Gateway.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'In order to use PayPal or Advanced Card Processing, you need to enable the Gateway.', 'woocommerce-paypal-payments' ),
|
||||||
'label' => __( 'Enable the PayPal Gateway', 'woocommerce-paypal-payments' ),
|
'label' => __( 'Enable PayPal features for your store', 'woocommerce-paypal-payments' ),
|
||||||
'default' => 'no',
|
'default' => 'no',
|
||||||
),
|
),
|
||||||
'ppcp' => array(
|
'ppcp' => array(
|
||||||
|
|
|
@ -125,4 +125,20 @@ class SettingsStatus {
|
||||||
|
|
||||||
return $context === 'product' ? $enabled_for_product || $enabled_for_mini_cart : $enabled_for_current_location;
|
return $context === 'product' ? $enabled_for_product || $enabled_for_mini_cart : $enabled_for_current_location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether smart buttons are enabled for a given location.
|
||||||
|
*
|
||||||
|
* @param string $location The location.
|
||||||
|
* @return bool true if is enabled, otherwise false.
|
||||||
|
*/
|
||||||
|
public function is_smart_button_enabled_for_location( string $location ): bool {
|
||||||
|
$selected_locations = $this->settings->has( 'smart_button_locations' ) ? $this->settings->get( 'smart_button_locations' ) : array();
|
||||||
|
|
||||||
|
if ( empty( $selected_locations ) ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return in_array( $location, $selected_locations, true );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,14 +9,13 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace WooCommerce\PayPalCommerce\WcGateway;
|
namespace WooCommerce\PayPalCommerce\WcGateway\Settings;
|
||||||
|
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
||||||
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
|
use WooCommerce\PayPalCommerce\ApiClient\Helper\DccApplies;
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\Environment;
|
use WooCommerce\PayPalCommerce\Onboarding\Environment;
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\Render\OnboardingOptionsRenderer;
|
use WooCommerce\PayPalCommerce\Onboarding\Render\OnboardingOptionsRenderer;
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\State;
|
use WooCommerce\PayPalCommerce\Onboarding\State;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
|
||||||
|
|
||||||
return function ( ContainerInterface $container, array $fields ): array {
|
return function ( ContainerInterface $container, array $fields ): array {
|
||||||
|
|
|
@ -9,11 +9,10 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace WooCommerce\PayPalCommerce\WcGateway;
|
namespace WooCommerce\PayPalCommerce\WcGateway\Settings;
|
||||||
|
|
||||||
use WooCommerce\PayPalCommerce\Onboarding\State;
|
use WooCommerce\PayPalCommerce\Onboarding\State;
|
||||||
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
||||||
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
|
|
||||||
|
|
||||||
return function ( ContainerInterface $container, array $fields ): array {
|
return function ( ContainerInterface $container, array $fields ): array {
|
||||||
|
|
||||||
|
@ -32,8 +31,6 @@ return function ( ContainerInterface $container, array $fields ): array {
|
||||||
? __( "You have PayPal vaulting enabled, that's why Pay Later options are unavailable now. You cannot use both features at the same time.", 'woocommerce-paypal-payments' )
|
? __( "You have PayPal vaulting enabled, that's why Pay Later options are unavailable now. You cannot use both features at the same time.", 'woocommerce-paypal-payments' )
|
||||||
: __( 'Enabled', 'woocommerce-paypal-payments' );
|
: __( 'Enabled', 'woocommerce-paypal-payments' );
|
||||||
|
|
||||||
$default_locations = array_keys( $container->get( 'wcgateway.settings.pay-later.messaging-locations' ) );
|
|
||||||
|
|
||||||
$selected_country = $container->get( 'api.shop.country' );
|
$selected_country = $container->get( 'api.shop.country' );
|
||||||
$default_messaging_flex_color = $selected_country === 'US' ? 'white-no-border' : 'white';
|
$default_messaging_flex_color = $selected_country === 'US' ? 'white-no-border' : 'white';
|
||||||
|
|
||||||
|
@ -75,7 +72,7 @@ return function ( ContainerInterface $container, array $fields ): array {
|
||||||
'type' => 'ppcp-multiselect',
|
'type' => 'ppcp-multiselect',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
'default' => $default_locations,
|
'default' => $container->get( 'wcgateway.button.default-locations' ),
|
||||||
'desc_tip' => false,
|
'desc_tip' => false,
|
||||||
'description' => __( 'Select where the Pay Later button should be displayed.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Select where the Pay Later button should be displayed.', 'woocommerce-paypal-payments' ),
|
||||||
'options' => $container->get( 'wcgateway.settings.pay-later.button-locations' ),
|
'options' => $container->get( 'wcgateway.settings.pay-later.button-locations' ),
|
||||||
|
@ -121,7 +118,7 @@ return function ( ContainerInterface $container, array $fields ): array {
|
||||||
'type' => 'ppcp-multiselect',
|
'type' => 'ppcp-multiselect',
|
||||||
'class' => array(),
|
'class' => array(),
|
||||||
'input_class' => array( 'wc-enhanced-select' ),
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
'default' => $default_locations,
|
'default' => $container->get( 'wcgateway.button.default-locations' ),
|
||||||
'desc_tip' => false,
|
'desc_tip' => false,
|
||||||
'description' => __( 'Select where the Pay Later messaging should be displayed.', 'woocommerce-paypal-payments' ),
|
'description' => __( 'Select where the Pay Later messaging should be displayed.', 'woocommerce-paypal-payments' ),
|
||||||
'options' => $container->get( 'wcgateway.settings.pay-later.messaging-locations' ),
|
'options' => $container->get( 'wcgateway.settings.pay-later.messaging-locations' ),
|
|
@ -0,0 +1,787 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* The services of the Gateway module.
|
||||||
|
*
|
||||||
|
* @package WooCommerce\PayPalCommerce\WcGateway
|
||||||
|
*/
|
||||||
|
|
||||||
|
// phpcs:disable WordPress.Security.NonceVerification.Recommended
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace WooCommerce\PayPalCommerce\WcGateway\Settings;
|
||||||
|
|
||||||
|
use WooCommerce\PayPalCommerce\Onboarding\State;
|
||||||
|
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
|
||||||
|
use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway;
|
||||||
|
|
||||||
|
return function ( ContainerInterface $container, array $fields ): array {
|
||||||
|
|
||||||
|
$current_page_id = $container->get( 'wcgateway.current-ppcp-settings-page-id' );
|
||||||
|
|
||||||
|
if ( $current_page_id !== PayPalGateway::ID ) {
|
||||||
|
return $fields;
|
||||||
|
}
|
||||||
|
|
||||||
|
$settings = $container->get( 'wcgateway.settings' );
|
||||||
|
assert( $settings instanceof Settings );
|
||||||
|
|
||||||
|
$has_enabled_separate_button_gateways = $container->get( 'wcgateway.settings.has_enabled_separate_button_gateways' );
|
||||||
|
|
||||||
|
$render_preview_element = function ( string $id ): string {
|
||||||
|
return '
|
||||||
|
<div class="ppcp-preview ppcp-button-preview">
|
||||||
|
<h4>' . __( 'Preview', 'woocommerce-paypal-payments' ) . '</h4>
|
||||||
|
<div id="' . $id . '" class="ppcp-button-preview-inner"></div>
|
||||||
|
</div>';
|
||||||
|
};
|
||||||
|
|
||||||
|
$smart_button_fields = array(
|
||||||
|
'button_style_heading' => array(
|
||||||
|
'heading' => __( 'PayPal Smart Buttons', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'ppcp-heading',
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
'description' => sprintf(
|
||||||
|
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
||||||
|
__(
|
||||||
|
'Customize the appearance of the PayPal smart buttons on the
|
||||||
|
%1$sCheckout page%5$s, %2$sSingle Product Page%5$s, %3$sCart page%5$s or on %4$sMini Cart%5$s.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-checkout" target="_blank">',
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-single-product" target="_blank">',
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-cart" target="_blank">',
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-mini-cart" target="_blank">',
|
||||||
|
'</a>'
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'smart_button_locations' => array(
|
||||||
|
'title' => __( 'Smart Button Locations', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'ppcp-multiselect',
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => $container->get( 'wcgateway.button.default-locations' ),
|
||||||
|
'description' => __( 'Select where the PayPal smart buttons should be displayed.', 'woocommerce-paypal-payments' ),
|
||||||
|
'options' => $container->get( 'wcgateway.button.locations' ),
|
||||||
|
'screens' => array( State::STATE_START, State::STATE_ONBOARDED ),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'smart_button_enable_styling_per_location' => array(
|
||||||
|
'title' => __( 'Customize Smart Buttons Per Location', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'label' => __( 'Customize smart button style per location', 'woocommerce-paypal-payments' ),
|
||||||
|
'default' => true,
|
||||||
|
'screens' => array( State::STATE_START, State::STATE_ONBOARDED ),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
// General button styles.
|
||||||
|
'button_general_layout' => array(
|
||||||
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'classes' => $has_enabled_separate_button_gateways ? array( 'hide' ) : array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'vertical',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'If additional funding sources are available to the buyer through PayPal, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
||||||
|
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_general_tagline' => array(
|
||||||
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'default' => false,
|
||||||
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_general_label' => array(
|
||||||
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
/**
|
||||||
|
* Returns default label ID of the PayPal button.
|
||||||
|
*/
|
||||||
|
'default' => apply_filters( 'woocommerce_paypal_payments_button_label_default', 'paypal' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'This controls the label on the primary button.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
||||||
|
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
||||||
|
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_general_color' => array(
|
||||||
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'gold',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
||||||
|
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
||||||
|
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
||||||
|
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_general_shape' => array(
|
||||||
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'rect',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
||||||
|
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_general_preview' => array(
|
||||||
|
'type' => 'ppcp-text',
|
||||||
|
'text' => $render_preview_element( 'ppcpGeneralButtonPreview' ),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
|
||||||
|
// Checkout page.
|
||||||
|
'button_checkout_heading' => array(
|
||||||
|
'heading' => __( 'Checkout Buttons', 'woocommerce-paypal-payments' ),
|
||||||
|
'description' => sprintf(
|
||||||
|
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
||||||
|
__(
|
||||||
|
'Customize the appearance of the PayPal smart buttons on the %1$sCheckout page%2$s.
|
||||||
|
%3$sCheckout Buttons must be enabled to display the PayPal gateway on the Checkout page.
|
||||||
|
',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-checkout" target="_blank">',
|
||||||
|
'</a>',
|
||||||
|
'</ br>'
|
||||||
|
),
|
||||||
|
'type' => 'ppcp-heading',
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_layout' => array(
|
||||||
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'classes' => $has_enabled_separate_button_gateways ? array( 'hide' ) : array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'vertical',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'If additional funding sources are available to the buyer through PayPal, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
||||||
|
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_tagline' => array(
|
||||||
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'default' => false,
|
||||||
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_label' => array(
|
||||||
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
/**
|
||||||
|
* Returns default label ID of the PayPal button.
|
||||||
|
*/
|
||||||
|
'default' => apply_filters( 'woocommerce_paypal_payments_button_label_default', 'paypal' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'This controls the label on the primary button.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
||||||
|
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
||||||
|
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_color' => array(
|
||||||
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'gold',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
||||||
|
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
||||||
|
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
||||||
|
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_shape' => array(
|
||||||
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'rect',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
||||||
|
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_preview' => array(
|
||||||
|
'type' => 'ppcp-text',
|
||||||
|
'text' => $render_preview_element( 'ppcpCheckoutButtonPreview' ),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
|
||||||
|
// Single product page.
|
||||||
|
'button_product_heading' => array(
|
||||||
|
'heading' => __( 'Single Product Page Buttons', 'woocommerce-paypal-payments' ),
|
||||||
|
'description' => sprintf(
|
||||||
|
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
||||||
|
__(
|
||||||
|
'Customize the appearance of the PayPal smart buttons on the %1$sSingle Product Page%2$s.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-single-product" target="_blank">',
|
||||||
|
'</a>'
|
||||||
|
),
|
||||||
|
'type' => 'ppcp-heading',
|
||||||
|
'screens' => array( State::STATE_START, State::STATE_ONBOARDED ),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_product_layout' => array(
|
||||||
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'horizontal',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'If additional funding sources are available to the buyer through PayPal, such as Venmo, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
||||||
|
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_product_tagline' => array(
|
||||||
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'default' => false,
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_product_label' => array(
|
||||||
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
/**
|
||||||
|
* Returns default label ID of the PayPal button on product pages.
|
||||||
|
*/
|
||||||
|
'default' => apply_filters( 'woocommerce_paypal_payments_button_product_label_default', 'paypal' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'This controls the label on the primary button.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
||||||
|
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
||||||
|
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_product_color' => array(
|
||||||
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'gold',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
||||||
|
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
||||||
|
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
||||||
|
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_product_shape' => array(
|
||||||
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'rect',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
||||||
|
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_product_preview' => array(
|
||||||
|
'type' => 'ppcp-text',
|
||||||
|
'text' => $render_preview_element( 'ppcpProductButtonPreview' ),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
|
||||||
|
// Cart settings.
|
||||||
|
'button_cart_heading' => array(
|
||||||
|
'heading' => __( 'Cart Buttons', 'woocommerce-paypal-payments' ),
|
||||||
|
'description' => sprintf(
|
||||||
|
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
||||||
|
__(
|
||||||
|
'Customize the appearance of the PayPal smart buttons on the %1$sCart page%2$s.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-cart" target="_blank">',
|
||||||
|
'</a>'
|
||||||
|
),
|
||||||
|
'type' => 'ppcp-heading',
|
||||||
|
'screens' => array( State::STATE_START, State::STATE_ONBOARDED ),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_cart_layout' => array(
|
||||||
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'horizontal',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'If additional funding sources are available to the buyer through PayPal, such as Venmo, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
||||||
|
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_cart_tagline' => array(
|
||||||
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'default' => false,
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_cart_label' => array(
|
||||||
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
/**
|
||||||
|
* Returns default label ID of the PayPal button in cart.
|
||||||
|
*/
|
||||||
|
'default' => apply_filters( 'woocommerce_paypal_payments_button_cart_label_default', 'paypal' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'This controls the label on the primary button.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
||||||
|
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
||||||
|
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_cart_color' => array(
|
||||||
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'gold',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
||||||
|
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
||||||
|
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
||||||
|
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_cart_shape' => array(
|
||||||
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'rect',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
||||||
|
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_cart_preview' => array(
|
||||||
|
'type' => 'ppcp-text',
|
||||||
|
'text' => $render_preview_element( 'ppcpCartButtonPreview' ),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
|
||||||
|
// Mini cart settings.
|
||||||
|
'button_mini-cart_heading' => array(
|
||||||
|
'heading' => __( 'Mini Cart Buttons', 'woocommerce-paypal-payments' ),
|
||||||
|
'description' => sprintf(
|
||||||
|
// translators: %1$s and %2$s are the opening and closing of HTML <a> tag.
|
||||||
|
__(
|
||||||
|
'Customize the appearance of the PayPal smart buttons on the %1$sMini Cart%2$s.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'<a href="https://woocommerce.com/document/woocommerce-paypal-payments/#button-on-mini-cart" target="_blank">',
|
||||||
|
'</a>'
|
||||||
|
),
|
||||||
|
'type' => 'ppcp-heading',
|
||||||
|
'screens' => array( State::STATE_START, State::STATE_ONBOARDED ),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_layout' => array(
|
||||||
|
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'vertical',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'If additional funding sources are available to the buyer through PayPal, such as Venmo, then multiple buttons are displayed in the space provided. Choose "vertical" for a dynamic list of alternative and local payment options, or "horizontal" when space is limited.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'vertical' => __( 'Vertical', 'woocommerce-paypal-payments' ),
|
||||||
|
'horizontal' => __( 'Horizontal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_tagline' => array(
|
||||||
|
'title' => __( 'Tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'label' => __( 'Enable tagline', 'woocommerce-paypal-payments' ),
|
||||||
|
'default' => false,
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Add the tagline. This line will only show up, if you select a horizontal layout.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_label' => array(
|
||||||
|
'title' => __( 'Button Label', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
/**
|
||||||
|
* Returns default label ID of the PayPal button in mini cart.
|
||||||
|
*/
|
||||||
|
'default' => apply_filters( 'woocommerce_paypal_payments_button_mini_cart_label_default', 'paypal' ),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'This controls the label on the primary button.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'paypal' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
'checkout' => __( 'Checkout', 'woocommerce-paypal-payments' ),
|
||||||
|
'buynow' => __( 'PayPal Buy Now', 'woocommerce-paypal-payments' ),
|
||||||
|
'pay' => __( 'Pay with PayPal', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_color' => array(
|
||||||
|
'title' => __( 'Color', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'gold',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'Controls the background color of the primary button. Use "Gold" to leverage PayPal\'s recognition and preference, or change it to match your site design or aesthetic.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'gold' => __( 'Gold (Recommended)', 'woocommerce-paypal-payments' ),
|
||||||
|
'blue' => __( 'Blue', 'woocommerce-paypal-payments' ),
|
||||||
|
'silver' => __( 'Silver', 'woocommerce-paypal-payments' ),
|
||||||
|
'black' => __( 'Black', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_shape' => array(
|
||||||
|
'title' => __( 'Shape', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'select',
|
||||||
|
'class' => array(),
|
||||||
|
'input_class' => array( 'wc-enhanced-select' ),
|
||||||
|
'default' => 'rect',
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __(
|
||||||
|
'The pill-shaped button\'s unique and powerful shape signifies PayPal in people\'s minds. Use the rectangular button as an alternative when pill-shaped buttons might pose design challenges.',
|
||||||
|
'woocommerce-paypal-payments'
|
||||||
|
),
|
||||||
|
'options' => array(
|
||||||
|
'pill' => __( 'Pill', 'woocommerce-paypal-payments' ),
|
||||||
|
'rect' => __( 'Rectangle', 'woocommerce-paypal-payments' ),
|
||||||
|
),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_height' => array(
|
||||||
|
'title' => __( 'Button Height', 'woocommerce-paypal-payments' ),
|
||||||
|
'type' => 'number',
|
||||||
|
'default' => '35',
|
||||||
|
'custom_attributes' => array(
|
||||||
|
'min' => 25,
|
||||||
|
'max' => 55,
|
||||||
|
),
|
||||||
|
'desc_tip' => true,
|
||||||
|
'description' => __( 'Add a value from 25 to 55.', 'woocommerce-paypal-payments' ),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_START,
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
'button_mini-cart_preview' => array(
|
||||||
|
'type' => 'ppcp-text',
|
||||||
|
'text' => $render_preview_element( 'ppcpMiniCartButtonPreview' ),
|
||||||
|
'screens' => array(
|
||||||
|
State::STATE_ONBOARDED,
|
||||||
|
),
|
||||||
|
'requirements' => array(),
|
||||||
|
'gateway' => 'paypal',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
return array_merge( $fields, $smart_button_fields );
|
||||||
|
};
|
|
@ -29,19 +29,19 @@ class Settings implements ContainerInterface {
|
||||||
private $settings = array();
|
private $settings = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The list of pay later selected default locations.
|
* The list of selected default button locations.
|
||||||
*
|
*
|
||||||
* @var string[]
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
protected $pay_later_default_locations;
|
protected $default_button_locations;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Settings constructor.
|
* Settings constructor.
|
||||||
*
|
*
|
||||||
* @param string[] $pay_later_default_locations The list of pay later selected default locations.
|
* @param string[] $default_button_locations The list of selected default button locations.
|
||||||
*/
|
*/
|
||||||
public function __construct( array $pay_later_default_locations ) {
|
public function __construct( array $default_button_locations ) {
|
||||||
$this->pay_later_default_locations = $pay_later_default_locations;
|
$this->default_button_locations = $default_button_locations;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -104,22 +104,20 @@ class Settings implements ContainerInterface {
|
||||||
$this->settings = get_option( self::KEY, array() );
|
$this->settings = get_option( self::KEY, array() );
|
||||||
|
|
||||||
$defaults = array(
|
$defaults = array(
|
||||||
'title' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
'title' => __( 'PayPal', 'woocommerce-paypal-payments' ),
|
||||||
'description' => __(
|
'description' => __(
|
||||||
'Pay via PayPal.',
|
'Pay via PayPal.',
|
||||||
'woocommerce-paypal-payments'
|
'woocommerce-paypal-payments'
|
||||||
),
|
),
|
||||||
'button_product_enabled' => true,
|
'smart_button_locations' => $this->default_button_locations,
|
||||||
'button_mini-cart_enabled' => false,
|
'smart_button_enable_styling_per_location' => true,
|
||||||
'button_cart_enabled' => true,
|
'pay_later_messaging_enabled' => true,
|
||||||
'pay_later_messaging_enabled' => true,
|
'pay_later_button_enabled' => true,
|
||||||
'button_enabled' => true,
|
'pay_later_button_locations' => $this->default_button_locations,
|
||||||
'pay_later_button_enabled' => true,
|
'pay_later_messaging_locations' => $this->default_button_locations,
|
||||||
'pay_later_button_locations' => $this->pay_later_default_locations,
|
'brand_name' => get_bloginfo( 'name' ),
|
||||||
'pay_later_messaging_locations' => $this->pay_later_default_locations,
|
'dcc_gateway_title' => __( 'Credit Cards', 'woocommerce-paypal-payments' ),
|
||||||
'brand_name' => get_bloginfo( 'name' ),
|
'dcc_gateway_description' => __(
|
||||||
'dcc_gateway_title' => __( 'Credit Cards', 'woocommerce-paypal-payments' ),
|
|
||||||
'dcc_gateway_description' => __(
|
|
||||||
'Pay with your credit card.',
|
'Pay with your credit card.',
|
||||||
'woocommerce-paypal-payments'
|
'woocommerce-paypal-payments'
|
||||||
),
|
),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue