woocommerce-paypal-payments/woocommerce-paypal-payments.php

156 lines
5 KiB
PHP
Raw Permalink Normal View History

2020-09-17 16:50:04 -03:00
<?php
2020-03-19 16:47:08 +01:00
/**
* Plugin Name: WooCommerce PayPal Payments
* Plugin URI: https://woocommerce.com/products/woocommerce-paypal-payments/
* Description: PayPal's latest complete payments processing solution. Accept PayPal, Pay Later, credit/debit cards, alternative digital wallets local payment types and bank accounts. Turn on only PayPal options or process a full suite of payment methods. Enable global transaction with extensive currency and country coverage.
2022-08-02 14:25:23 +02:00
* Version: 1.9.2
2020-09-11 10:14:00 +03:00
* Author: WooCommerce
* Author URI: https://woocommerce.com/
2020-03-19 16:47:08 +01:00
* License: GPL-2.0
* Requires PHP: 7.1
* WC requires at least: 3.9
2022-08-02 14:25:23 +02:00
* WC tested up to: 6.7
* Text Domain: woocommerce-paypal-payments
2020-09-17 16:50:04 -03:00
*
* @package WooCommerce\PayPalCommerce
2020-03-19 16:47:08 +01:00
*/
2020-09-17 16:50:04 -03:00
declare( strict_types = 1 );
2020-06-15 11:48:37 +03:00
2020-09-11 14:11:10 +03:00
namespace WooCommerce\PayPalCommerce;
2020-04-02 08:38:00 +03:00
2020-10-01 08:53:44 +03:00
define( 'PAYPAL_API_URL', 'https://api.paypal.com' );
define( 'PAYPAL_SANDBOX_API_URL', 'https://api.sandbox.paypal.com' );
2022-04-13 10:47:00 +02:00
define( 'PAYPAL_INTEGRATION_DATE', '2022-04-13' );
2020-10-01 08:53:44 +03:00
define( 'PPCP_FLAG_SUBSCRIPTION', true );
2022-08-02 14:02:23 +03:00
define( 'PPCP_FLAG_OXXO', apply_filters( 'woocommerce_paypal_payments_enable_oxxo_feature', false ) );
define( 'PPCP_FLAG_SEPARATE_APM_BUTTONS', apply_filters( 'woocommerce_paypal_payments_enable_separate_apm_buttons_feature', false ) );
! defined( 'CONNECT_WOO_CLIENT_ID' ) && define( 'CONNECT_WOO_CLIENT_ID', 'AcCAsWta_JTL__OfpjspNyH7c1GGHH332fLwonA5CwX4Y10mhybRZmHLA0GdRbwKwjQIhpDQy0pluX_P' );
! defined( 'CONNECT_WOO_SANDBOX_CLIENT_ID' ) && define( 'CONNECT_WOO_SANDBOX_CLIENT_ID', 'AYmOHbt1VHg-OZ_oihPdzKEVbU3qg0qXonBcAztuzniQRaKE0w1Hr762cSFwd4n8wxOl-TCWohEa0XM_' );
! defined( 'CONNECT_WOO_MERCHANT_ID' ) && define( 'CONNECT_WOO_MERCHANT_ID', 'K8SKZ36LQBWXJ' );
! defined( 'CONNECT_WOO_SANDBOX_MERCHANT_ID' ) && define( 'CONNECT_WOO_SANDBOX_MERCHANT_ID', 'MPMFHQTVMBZ6G' );
! defined( 'CONNECT_WOO_URL' ) && define( 'CONNECT_WOO_URL', 'https://connect.woocommerce.com/ppc' );
! defined( 'CONNECT_WOO_SANDBOX_URL' ) && define( 'CONNECT_WOO_SANDBOX_URL', 'https://connect.woocommerce.com/ppcsandbox' );
2020-10-01 08:53:44 +03:00
2020-09-17 16:50:04 -03:00
( function () {
$autoload_filepath = __DIR__ . '/vendor/autoload.php';
if ( file_exists( $autoload_filepath ) && ! class_exists( '\WooCommerce\PayPalCommerce\PluginModule' ) ) {
require $autoload_filepath;
}
2020-04-02 08:38:00 +03:00
2020-09-17 16:50:04 -03:00
/**
* Initialize the plugin and its modules.
*/
function init() {
2021-08-27 20:40:09 +03:00
$root_dir = __DIR__;
if ( ! is_woocommerce_activated() ) {
add_action(
'admin_notices',
function() {
/* translators: 1. URL link. */
echo '<div class="error"><p><strong>' . sprintf( esc_html__( 'WooCommerce PayPal Payments requires WooCommerce to be installed and active. You can download %s here.', 'woocommerce-paypal-payments' ), '<a href="https://woocommerce.com/" target="_blank">WooCommerce</a>' ) . '</strong></p></div>';
}
);
return;
}
if ( version_compare( PHP_VERSION, '7.1', '<' ) ) {
add_action(
'admin_notices',
function() {
echo '<div class="error"><p>' . esc_html__( 'WooCommerce PayPal Payments requires PHP 7.1 or above.', 'woocommerce-paypal-payments' ), '</p></div>';
}
);
return;
}
2020-09-17 16:50:04 -03:00
static $initialized;
if ( ! $initialized ) {
2021-08-27 20:40:09 +03:00
$bootstrap = require "$root_dir/bootstrap.php";
2021-07-26 20:13:05 +03:00
2021-08-27 20:40:09 +03:00
$app_container = $bootstrap( $root_dir );
2021-07-26 20:13:05 +03:00
2020-09-17 16:50:04 -03:00
$initialized = true;
2022-02-17 18:19:55 +02:00
/**
* The hook fired after the plugin bootstrap with the app services container as parameter.
*/
2021-08-27 20:40:09 +03:00
do_action( 'woocommerce_paypal_payments_built_container', $app_container );
2020-09-17 16:50:04 -03:00
}
}
2020-04-02 08:38:00 +03:00
2020-09-17 16:50:04 -03:00
add_action(
'plugins_loaded',
function () {
init();
2021-11-08 11:07:37 +01:00
if ( ! function_exists( 'get_plugin_data' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$plugin_data = get_plugin_data( __DIR__ . '/woocommerce-paypal-payments.php' );
$plugin_version = $plugin_data['Version'] ?? null;
2021-11-08 11:43:44 +01:00
if ( get_option( 'woocommerce-ppcp-version' ) !== $plugin_version ) {
2022-02-17 18:19:55 +02:00
/**
* The hook fired when the plugin is installed or updated.
*/
2021-11-08 11:07:37 +01:00
do_action( 'woocommerce_paypal_payments_gateway_migrate' );
2021-11-08 11:43:44 +01:00
update_option( 'woocommerce-ppcp-version', $plugin_version );
2021-11-08 11:07:37 +01:00
}
2020-09-17 16:50:04 -03:00
}
);
register_activation_hook(
__FILE__,
function () {
init();
2022-02-17 18:19:55 +02:00
/**
* The hook fired in register_activation_hook.
*/
2020-10-09 19:55:28 -03:00
do_action( 'woocommerce_paypal_payments_gateway_activate' );
2020-09-17 16:50:04 -03:00
}
);
register_deactivation_hook(
__FILE__,
function () {
init();
2022-02-17 18:19:55 +02:00
/**
* The hook fired in register_deactivation_hook.
*/
2020-10-09 19:55:28 -03:00
do_action( 'woocommerce_paypal_payments_gateway_deactivate' );
2020-09-17 16:50:04 -03:00
}
);
2020-04-06 10:51:56 +03:00
// Add "Settings" link to Plugins screen.
add_filter(
'plugin_action_links_' . plugin_basename( __FILE__ ),
function( $links ) {
if ( ! is_woocommerce_activated() ) {
return $links;
}
array_unshift(
$links,
sprintf(
'<a href="%1$s">%2$s</a>',
admin_url( 'admin.php?page=wc-settings&tab=checkout&section=ppcp-gateway' ),
__( 'Settings', 'woocommerce-paypal-payments' )
)
);
return $links;
}
);
/**
* Check if WooCommerce is active.
*
* @return bool true if WooCommerce is active, otherwise false.
*/
function is_woocommerce_activated(): bool {
return class_exists( 'woocommerce' );
}
2020-09-17 16:50:04 -03:00
} )();