Skip to content

Explore: implement a basic autoloader #4260

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 30 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5abf489
Add autoloader
daledupreez Apr 24, 2025
bcc2cd0
Remove require_onces; instantiate classes directly instead of implicitly
daledupreez Apr 24, 2025
384722b
Add WC_Stripe_Apple_Pay to class map
daledupreez Apr 24, 2025
3b97a00
Move REST APIs in includes/admin/ to main class map
daledupreez Apr 24, 2025
aae0eb3
Fix case to match case sensitivity of autoloader
daledupreez Apr 24, 2025
498353c
Merge develop into try/add-basic-classmap-autoloader
daledupreez Apr 24, 2025
20f59ed
Remove unnecessary requires for REST controllers
daledupreez Apr 24, 2025
27225d0
Merge branch develop into try/add-basic-classmap-autoloader
daledupreez Apr 30, 2025
0344b78
Switch to case-insensitive logic
daledupreez Apr 30, 2025
48293ce
Revert "Fix case to match case sensitivity of autoloader"
daledupreez Apr 30, 2025
1eeefa5
Update PHPDoc
daledupreez Apr 30, 2025
52dd00d
Enable autoloader for WC_Stripe_Inbox_Notes() and avoid side-effects …
daledupreez Apr 30, 2025
350b3ea
Make autoloader initialisation explicit
daledupreez Apr 30, 2025
d2df781
Changelog
daledupreez Apr 30, 2025
d7a36aa
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 1, 2025
81f107a
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 2, 2025
a8c9415
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 2, 2025
f6edb51
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 2, 2025
f890636
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 27, 2025
2e30e4a
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 27, 2025
463e879
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez May 29, 2025
ac6458f
Add entry for WC_Stripe_Database_Cache; fix sort for entries
daledupreez May 29, 2025
a22944d
Update WC_Stripe after it was moved
daledupreez May 29, 2025
543d635
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez Jun 2, 2025
569724c
Merge branch 'develop' into try/add-basic-classmap-autoloader
wjrosa Jun 3, 2025
8c3fea6
Merge branch 'develop' into try/add-basic-classmap-autoloader
wjrosa Jun 5, 2025
e2de442
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez Jun 10, 2025
693ce49
Merge branch 'develop' into try/add-basic-classmap-autoloader
daledupreez Jun 14, 2025
9a5ca51
Merge branch 'develop' into try/add-basic-classmap-autoloader
wjrosa Jun 23, 2025
e79f5b5
Implementing composer autoloader without namespaces (#4406)
wjrosa Jul 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
* Update - Support block checkout custom fields when using express payment methods like Apple Pay and Google Pay
* Dev - Fix failing optimized checkout e2e test due to incorrect order of operations
* Tweak - Remove Payment Method Configurations fallback cache
* Dev - Implement a class autoloader for the plugin to reduce unnecessary file loads
* Fix - Show correct price in express checkout for zero decimal currencies
* Fix - Fix buggy unsaved changes warning in settings page
* Fix - Use the platform's payment method configuration id constant when rendering the Optimized Checkout
Expand Down
3 changes: 3 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
"woocommerce/woocommerce-sniffs": "1.0.0",
"wp-cli/wp-cli-bundle": "2.5.0"
},
"autoload": {
"classmap": [ "includes/" ]
},
"autoload-dev": {
"psr-4": {
"WooCommerce\\Stripe\\Tests\\": "tests/phpunit/"
Expand Down
2 changes: 0 additions & 2 deletions includes/admin/class-wc-stripe-admin-notices.php
Original file line number Diff line number Diff line change
Expand Up @@ -605,5 +605,3 @@ public function stripe_updated() {
}
}
}

new WC_Stripe_Admin_Notices();
2 changes: 0 additions & 2 deletions includes/admin/class-wc-stripe-inbox-notes.php
Original file line number Diff line number Diff line change
Expand Up @@ -226,5 +226,3 @@ public static function cleanup_campaign_2020() {
}
}
}

new WC_Stripe_Inbox_Notes();
2 changes: 0 additions & 2 deletions includes/admin/class-wc-stripe-privacy.php
Original file line number Diff line number Diff line change
Expand Up @@ -447,5 +447,3 @@ public function is_retention_expired( $created_date ) {
return $is_expired;
}
}

new WC_Stripe_Privacy();
219 changes: 219 additions & 0 deletions includes/class-wc-stripe-autoloader.php

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion includes/class-wc-stripe-customer.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class WC_Stripe_Customer {
*/
const STRIPE_PAYMENT_METHODS = [
WC_Stripe_UPE_Payment_Method_CC::STRIPE_ID,
WC_Stripe_UPE_Payment_Method_LINK::STRIPE_ID,
WC_Stripe_UPE_Payment_Method_Link::STRIPE_ID,
WC_Stripe_UPE_Payment_Method_Sepa::STRIPE_ID,
WC_Stripe_UPE_Payment_Method_Cash_App_Pay::STRIPE_ID,
WC_Stripe_UPE_Payment_Method_ACH::STRIPE_ID,
Expand Down
124 changes: 5 additions & 119 deletions includes/class-wc-stripe.php
Original file line number Diff line number Diff line change
Expand Up @@ -113,101 +113,11 @@ public function __construct() {
*/
public function init() {
if ( is_admin() ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-privacy.php';
}
if ( file_exists( WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-feature-flags.php' ) ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-feature-flags.php';
new WC_Stripe_Privacy();
}

require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-upe-compatibility.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-co-branded-cc-compatibility.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-exception.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-logger.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-helper.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-database-cache.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-payment-method-configurations.php';
include_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-api.php';
include_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-mode.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-subscriptions-helper.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/trait-wc-stripe-subscriptions-utilities.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/trait-wc-stripe-subscriptions.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/trait-wc-stripe-pre-orders.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-subscriptions-legacy-sepa-token-update.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/abstracts/abstract-wc-stripe-payment-gateway.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/abstracts/abstract-wc-stripe-payment-gateway-voucher.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-action-scheduler-service.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-webhook-state.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-webhook-handler.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/trait-wc-stripe-fingerprint.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/interface-wc-stripe-payment-method-comparison.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-cc-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-ach-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-acss-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-sepa-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-link-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-cash-app-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-bacs-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-becs-debit-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-amazon-pay-payment-token.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-apple-pay-registration.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-status.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-gateway-stripe.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/constants/class-wc-stripe-currency-code.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/constants/class-wc-stripe-payment-methods.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/constants/class-wc-stripe-intent-status.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-gateway.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-cc.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-ach.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-alipay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-bacs-debit.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-becs-debit.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-blik.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-giropay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-ideal.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-klarna.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-affirm.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-afterpay-clearpay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-bancontact.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-boleto.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-oxxo.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-eps.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-sepa.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-p24.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-sofort.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-multibanco.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-link.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-cash-app-pay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-wechat-pay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-acss.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-upe-payment-method-amazon-pay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-bancontact.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-sofort.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-giropay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-eps.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-ideal.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-p24.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-alipay.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-sepa.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-multibanco.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-boleto.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-gateway-stripe-oxxo.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-payment-request.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-express-checkout-element.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-express-checkout-helper.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-methods/class-wc-stripe-express-checkout-ajax-handler.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-woo-compat-utils.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-api.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-order-handler.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/payment-tokens/class-wc-stripe-payment-tokens.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-customer.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-intent-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-inbox-notes.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-upe-compatibility-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/migrations/class-allowed-payment-request-button-types-update.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/migrations/class-migrate-payment-request-data-to-express-checkout-data.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-account.php';
new WC_Stripe_Inbox_Notes();
new WC_Stripe_Apple_Pay_Registration();

new Allowed_Payment_Request_Button_Types_Update();
// TODO: Temporary disabling the migration as it has a conflict with the new UPE checkout.
Expand All @@ -225,27 +135,23 @@ public function init() {
$intent_controller->init_hooks();

if ( is_admin() ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-admin-notices.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-settings-controller.php';
new WC_Stripe_Admin_Notices();

if ( isset( $_GET['area'] ) && 'payment_requests' === $_GET['area'] ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-payment-requests-controller.php';
new WC_Stripe_Payment_Requests_Controller();
} elseif ( isset( $_GET['area'] ) && 'amazon_pay' === $_GET['area'] && WC_Stripe_Feature_Flags::is_amazon_pay_available() ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-amazon-pay-controller.php';
new WC_Stripe_Amazon_Pay_Controller();
} else {
new WC_Stripe_Settings_Controller( $this->account );
}

if ( WC_Stripe_Feature_Flags::is_upe_checkout_enabled() ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-payment-gateways-controller.php';
new WC_Stripe_Payment_Gateways_Controller();
}
}

// REMOVE IN THE FUTURE.
require_once WC_STRIPE_PLUGIN_PATH . '/includes/deprecated/class-wc-stripe-apple-pay.php';
new WC_Stripe_Apple_Pay();

add_filter( 'woocommerce_payment_gateways', [ $this, 'add_gateways' ] );
add_filter( 'pre_update_option_woocommerce_stripe_settings', [ $this, 'gateway_settings_update' ], 10, 2 );
Expand Down Expand Up @@ -682,11 +588,6 @@ protected function disable_upe( $settings ) {
* @return WC_Email[]
*/
public function add_emails( $email_classes ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-email-failed-authentication.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-email-failed-renewal-authentication.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-email-failed-preorder-authentication.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/compat/class-wc-stripe-email-failed-authentication-retry.php';

// Add all emails, generated by the gateway.
$email_classes['WC_Stripe_Email_Failed_Renewal_Authentication'] = new WC_Stripe_Email_Failed_Renewal_Authentication( $email_classes );
$email_classes['WC_Stripe_Email_Failed_Preorder_Authentication'] = new WC_Stripe_Email_Failed_Preorder_Authentication( $email_classes );
Expand All @@ -701,17 +602,6 @@ public function add_emails( $email_classes ) {
* New endpoints/controllers can be added here.
*/
public function register_routes() {
/** API includes */
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-rest-base-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/abstracts/abstract-wc-stripe-connect-rest-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-account-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-connection-tokens-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-locations-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-orders-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-tokens-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-rest-oauth-init-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-rest-oauth-connect-controller.php';

$connection_tokens_controller = new WC_REST_Stripe_Connection_Tokens_Controller( $this->get_main_stripe_gateway() );
$locations_controller = new WC_REST_Stripe_Locations_Controller();
$orders_controller = new WC_REST_Stripe_Orders_Controller( $this->get_main_stripe_gateway() );
Expand All @@ -729,10 +619,6 @@ public function register_routes() {
$stripe_account_controller->register_routes();

if ( WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-settings-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-stripe-rest-upe-flag-toggle-controller.php';
require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-stripe-account-keys-controller.php';

$upe_flag_toggle_controller = new WC_Stripe_REST_UPE_Flag_Toggle_Controller();
$upe_flag_toggle_controller->register_routes();

Expand Down
2 changes: 0 additions & 2 deletions includes/deprecated/class-wc-stripe-apple-pay.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,3 @@ public function __call( $name, $arguments ) {
}
}
}

new WC_Stripe_Apple_Pay();
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,11 @@
"postinstall": "composer install && npx playwright install",
"prebuild": "npm install && composer install",
"prepare": "is-ci || husky install",
"build": "npm run uglify && npm run sass && rimraf build/* && npm run build:webpack && npm run build:i18n && npm run build:release",
"build": "npm run uglify && npm run sass && rimraf build/* && npm run build:webpack && npm run build:i18n && npm run build:deps && npm run build:release",
"build:i18n": "npm run i18n:makepot && npm run i18n:merge",
"build:release": "node tasks/release.js && mv release/woocommerce-gateway-stripe.zip .",
"build:webpack": "wp-scripts build",
"build:deps": "rm -rf vendor && composer install --no-dev --classmap-authoritative",
"i18n:makepot": "./vendor/bin/wp i18n make-pot . languages/woocommerce-gateway-stripe.pot --exclude=assets,bin,build,docker,docs,node_modules,release,tests,vendor",
"i18n:merge": "php bin/update-pot-file-references.php languages/woocommerce-gateway-stripe.pot",
"start": "npm run start:webpack",
Expand Down
1 change: 1 addition & 0 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ If you get stuck, you can ask for help in the [Plugin Forum](https://wordpress.o
* Update - Support block checkout custom fields when using express payment methods like Apple Pay and Google Pay
* Dev - Fix failing optimized checkout e2e test due to incorrect order of operations
* Tweak - Remove Payment Method Configurations fallback cache
* Dev - Implement a class autoloader for the plugin to reduce unnecessary file loads
* Fix - Show correct price in express checkout for zero decimal currencies
* Fix - Fix buggy unsaved changes warning in settings page
* Fix - Use the platform's payment method configuration id constant when rendering the Optimized Checkout
Expand Down
1 change: 1 addition & 0 deletions tasks/release.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const filesToCopy = [
'includes',
'languages',
'templates',
'vendor',
'woocommerce-gateway-stripe.php',
'changelog.txt',
'readme.txt',
Expand Down
11 changes: 9 additions & 2 deletions woocommerce-gateway-stripe.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,15 @@ function woocommerce_gateway_stripe() {
static $plugin;

if ( ! isset( $plugin ) ) {
require_once __DIR__ . '/includes/class-wc-stripe.php';

// Attempts to include the default composer autoloader.
$autoload_filepath = __DIR__ . '/vendor/autoload.php';
if ( file_exists( $autoload_filepath ) ) {
require $autoload_filepath;
} elseif ( file_exists( __DIR__ . '/includes/class-wc-stripe-autoloader.php' ) ) {
// Initialize our custom autoloader as a fallback.
require_once __DIR__ . '/includes/class-wc-stripe-autoloader.php';
WC_Stripe_Autoloader::init();
}
$plugin = WC_Stripe::get_instance();
}

Expand Down