woo-alipay/woo-alipay.php

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 );