whoami7 - Manager
:
/
home
/
dataiclx
/
public_html
/
wp-content
/
plugins
/
woocommerce
/
src
/
Gateways
/
PayPal
/
Upload File:
files >> /home/dataiclx/public_html/wp-content/plugins/woocommerce/src/Gateways/PayPal/Buttons.php
<?php /** * Class Automattic\WooCommerce\Gateways\PayPal\Buttons file. * * @package WooCommerce\Gateways */ declare(strict_types=1); namespace Automattic\WooCommerce\Gateways\PayPal; use Automattic\WooCommerce\Proxies\LegacyProxy; use Automattic\WooCommerce\Gateways\PayPal\Request as PayPalRequest; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Handles PayPal Buttons. * * @since 10.5.0 */ class Buttons { /** * The option for the client-id. * * @var string */ private const CLIENT_ID_OPTION = 'woocommerce_paypal_client_id'; /** * The gateway instance. * * @var \WC_Gateway_Paypal */ private \WC_Gateway_Paypal $gateway; /** * Whether the gateway should use Orders v2 API. * * @var bool */ private bool $enabled; /** * The request instance. * * @var PayPalRequest */ private PayPalRequest $request; /** * Constructor. * * @param \WC_Gateway_Paypal $gateway The gateway instance. */ public function __construct( \WC_Gateway_Paypal $gateway ) { $this->gateway = $gateway; $this->request = new PayPalRequest( $this->gateway ); $this->enabled = $this->gateway->should_use_orders_v2() && 'yes' === $this->gateway->get_option( 'paypal_buttons', 'yes' ); } /** * Get the options for the PayPal buttons. * * @since 10.5.0 * * @return array */ public function get_options(): array { $common_options = $this->get_common_options(); $options = array( 'partner-attribution-id' => 'Woo_Cart_CoreUpgrade', 'page-type' => $this->get_page_type(), ); return array_merge( $common_options, $options ); } /** * Get the common attributes for the PayPal JS SDK script and modules. * * @since 10.5.0 * * @return array */ public function get_common_options(): array { $intent = $this->gateway->get_option( 'paymentaction' ) === 'authorization' ? 'authorize' : 'capture'; return array( 'client-id' => $this->get_client_id(), 'components' => 'buttons,funding-eligibility,messages', 'disable-funding' => 'card,applepay', 'enable-funding' => 'venmo,paylater', 'currency' => get_woocommerce_currency(), 'intent' => $intent, 'merchant-id' => $this->gateway->email, ); } /** * Get the client-id for the PayPal buttons. * * @since 10.5.0 * * @return string|null The PayPal client-id, or null if the request fails. */ public function get_client_id(): ?string { if ( ! $this->gateway->should_use_orders_v2() ) { return null; } $option_key = self::CLIENT_ID_OPTION . ( $this->gateway->testmode ? '_sandbox' : '_live' ); $client_id = get_option( $option_key, null ); if ( empty( $client_id ) ) { $client_id = $this->request->fetch_paypal_client_id(); if ( empty( $client_id ) ) { return null; } update_option( $option_key, $client_id ); } return $client_id; } /** * Get the page type for the PayPal buttons. * * @since 10.5.0 * * @return string */ public function get_page_type(): string { $page_type = 'checkout'; if ( is_cart() || has_block( 'woocommerce/cart' ) ) { $page_type = 'cart'; } elseif ( is_product() ) { $page_type = 'product-details'; } return $page_type; } /** * Whether PayPal Buttons is enabled. * * @since 10.5.0 * * @return bool */ public function is_enabled(): bool { return $this->enabled; } /** * Get the current page URL, to be used for App Switch. * Limited to checkout, cart, and product pages for security. * * @since 10.5.0 * * @return string */ public function get_current_page_for_app_switch(): string { // If checkout, cart or product page, return the current page URL. if ( wc_get_container()->get( LegacyProxy::class )->call_function( 'is_checkout' ) || is_cart() || is_product() ) { return get_permalink( get_the_ID() ); } return ''; } }
Copyright ©2021 || Defacer Indonesia