233 lines
9 KiB
PHP
Executable file
233 lines
9 KiB
PHP
Executable file
<?php
|
|
/*
|
|
* Plugin Name: Woo Alipay
|
|
* Plugin URI: https://wenpai.org/plugins/woo-alipay
|
|
* Update URI: https://updates.wenpai.net
|
|
* Description: Integrate Woocommerce with Alipay (Mainland China). Supports WooCommerce Blocks and HPOS.
|
|
* Version: 3.2.0
|
|
* Author: WooCN.com
|
|
* Author URI: https://woocn.com/
|
|
* Text Domain: woo-alipay
|
|
* Domain Path: /languages
|
|
* WC tested up to: 10.2.2
|
|
* Requires Plugins: woocommerce
|
|
*/
|
|
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_PLUGIN_FILE' ) ) {
|
|
define( 'WOO_ALIPAY_PLUGIN_FILE', __FILE__ );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_PLUGIN_PATH', plugin_dir_path( WOO_ALIPAY_PLUGIN_FILE ) );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_PLUGIN_URL', plugin_dir_url( WOO_ALIPAY_PLUGIN_FILE ) );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_VERSION' ) ) {
|
|
define( 'WOO_ALIPAY_VERSION', '3.2.0' );
|
|
}
|
|
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-woo-alipay.php';
|
|
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'includes/class-wenpai-updater.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'includes/class-wenpai-updater.php';
|
|
}
|
|
|
|
if ( class_exists( 'WenPai_Updater' ) ) {
|
|
new WenPai_Updater( plugin_basename( WOO_ALIPAY_PLUGIN_FILE ), WOO_ALIPAY_VERSION );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_PS_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_PS_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/profitsharing/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_PS_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_PS_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/profitsharing/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_FUNDAUTH_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_FUNDAUTH_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/fund-auth/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_FUNDAUTH_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_FUNDAUTH_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/fund-auth/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_RECONCILE_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_RECONCILE_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/reconcile/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_RECONCILE_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_RECONCILE_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/reconcile/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_BARCODE_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_BARCODE_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/barcode/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_BARCODE_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_BARCODE_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/barcode/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_F2F_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_F2F_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/f2f/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_F2F_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_F2F_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/f2f/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_HUABEI_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_HUABEI_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/huabei/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_HUABEI_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_HUABEI_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/huabei/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_SUBSCRIPTIONS_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_SUBSCRIPTIONS_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/subscriptions/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_SUBSCRIPTIONS_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_SUBSCRIPTIONS_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/subscriptions/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_MINIPROGRAM_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_MINIPROGRAM_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/mini-program/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_MINIPROGRAM_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_MINIPROGRAM_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/mini-program/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_CROSS_BORDER_PLUGIN_PATH' ) ) {
|
|
define( 'WOO_ALIPAY_CROSS_BORDER_PLUGIN_PATH', WOO_ALIPAY_PLUGIN_PATH . 'inc/modules/cross-border/' );
|
|
}
|
|
|
|
if ( ! defined( 'WOO_ALIPAY_CROSS_BORDER_PLUGIN_URL' ) ) {
|
|
define( 'WOO_ALIPAY_CROSS_BORDER_PLUGIN_URL', WOO_ALIPAY_PLUGIN_URL . 'inc/modules/cross-border/' );
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_PS_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_PS_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_FUNDAUTH_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_FUNDAUTH_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_RECONCILE_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_RECONCILE_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_BARCODE_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_BARCODE_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_F2F_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_F2F_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_HUABEI_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_HUABEI_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_SUBSCRIPTIONS_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_SUBSCRIPTIONS_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_MINIPROGRAM_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_MINIPROGRAM_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_CROSS_BORDER_PLUGIN_PATH . 'bootstrap.php' ) ) {
|
|
require_once WOO_ALIPAY_CROSS_BORDER_PLUGIN_PATH . 'bootstrap.php';
|
|
}
|
|
|
|
// Load enable gateways helper
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'enable-gateways.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'enable-gateways.php';
|
|
}
|
|
|
|
// Load agreement manager (subscriptions auto-renew support)
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-agreement.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-agreement.php';
|
|
}
|
|
// Load subscription UI helpers
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-subscription-ui.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-subscription-ui.php';
|
|
}
|
|
|
|
add_action( 'before_woocommerce_init', function() {
|
|
if ( class_exists( \Automattic\WooCommerce\Utilities\FeaturesUtil::class ) ) {
|
|
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'custom_order_tables', __FILE__, true );
|
|
\Automattic\WooCommerce\Utilities\FeaturesUtil::declare_compatibility( 'cart_checkout_blocks', __FILE__, true );
|
|
}
|
|
} );
|
|
|
|
register_activation_hook( WOO_ALIPAY_PLUGIN_FILE, array( 'Woo_Alipay', 'activate' ) );
|
|
register_deactivation_hook( WOO_ALIPAY_PLUGIN_FILE, array( 'Woo_Alipay', 'deactivate' ) );
|
|
register_uninstall_hook( WOO_ALIPAY_PLUGIN_FILE, array( 'Woo_Alipay', 'uninstall' ) );
|
|
|
|
function woo_alipay_run() {
|
|
if ( ! class_exists( 'WC_Payment_Gateway' ) ) {
|
|
return;
|
|
}
|
|
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay.php';
|
|
|
|
// Load SDK helper class
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'inc/class-alipay-sdk-helper.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-alipay-sdk-helper.php';
|
|
}
|
|
|
|
// Extension gateways are now fully owned and loaded by their respective extensions.
|
|
// The core plugin no longer requires Huabei or Face-to-Face classes here.
|
|
|
|
// Load enhanced payment features
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-order-query.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-order-query.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-order-timeout.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-order-timeout.php';
|
|
}
|
|
|
|
if ( file_exists( WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-webhook-retry.php' ) ) {
|
|
require_once WOO_ALIPAY_PLUGIN_PATH . 'inc/class-wc-alipay-webhook-retry.php';
|
|
}
|
|
|
|
$alipay_lib_paths = array(
|
|
'payment_mobile' => array(
|
|
'AlipayTradeService' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/wappay/service/AlipayTradeService.php',
|
|
'AlipayTradeWapPayContentBuilder' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/wappay/buildermodel/AlipayTradeWapPayContentBuilder.php',
|
|
),
|
|
'payment_computer' => array(
|
|
'AlipayTradeService' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/pagepay/service/AlipayTradeService.php',
|
|
'AlipayTradePagePayContentBuilder' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php',
|
|
),
|
|
'check_notification' => array(
|
|
'AlipayTradeService' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/pagepay/service/AlipayTradeService.php',
|
|
),
|
|
'refund' => array(
|
|
'AlipayTradeService' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/pagepay/service/AlipayTradeService.php',
|
|
'AlipayTradeRefundContentBuilder' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/pagepay/buildermodel/AlipayTradeRefundContentBuilder.php',
|
|
'AlipayTradeRefundRequest' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/aop/request/AlipayTradeRefundRequest.php',
|
|
),
|
|
'dummy_query' => array(
|
|
'AlipayTradeService' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/pagepay/service/AlipayTradeService.php',
|
|
'AlipayTradeQueryRequest' => WOO_ALIPAY_PLUGIN_PATH . 'lib/alipay/aop/request/AlipayTradeQueryRequest.php',
|
|
),
|
|
);
|
|
|
|
$wc_alipay = new WC_Alipay( true );
|
|
$wooalipay = new Woo_Alipay( $alipay_lib_paths, true );
|
|
}
|
|
add_action( 'init', 'woo_alipay_run', 0, 0 );
|