Prep Plugin for release on WordPress.org ()

* Update translation text domain
* Escape everything that should be escaped.
* Add nonce checks where needed.
* Sanitize all inputs.
* Apply Code style changes across the codebase.
* Correct many deprecation notices.
* Optimize load order of many filters.
* Add Proper Build script
* Use emojii flags
* Fix i18n deprecation  notice for translating too early
* Put all scripts in footer and load async
This commit is contained in:
David Stone
2025-04-14 11:36:46 -06:00
committed by GitHub
parent a31cfcb565
commit d88e50df38
1087 changed files with 12586 additions and 18535 deletions
.phpcs.xml.dist
assets
css
img
flags
1x1
ad.svgae.svgaf.svgag.svgai.svgal.svgam.svgao.svgaq.svgar.svgas.svgat.svgau.svgaw.svgax.svgaz.svgba.svgbb.svgbd.svgbe.svgbf.svgbg.svgbh.svgbi.svgbj.svgbl.svgbm.svgbn.svgbo.svgbq.svgbr.svgbs.svgbt.svgbv.svgbw.svgby.svgbz.svgca.svgcc.svgcd.svgcf.svgcg.svgch.svgci.svgck.svgcl.svgcm.svgcn.svgco.svgcr.svgcu.svgcv.svgcw.svgcx.svgcy.svgcz.svgde.svgdj.svgdk.svgdm.svgdo.svgdz.svgec.svgee.svgeg.svgeh.svger.svges-ca.svges-ga.svges.svget.svgeu.svgfi.svgfj.svgfk.svgfm.svgfo.svgfr.svgga.svggb-eng.svggb-nir.svggb-sct.svggb-wls.svggb.svggd.svgge.svggf.svggg.svggh.svggi.svggl.svggm.svggn.svggp.svggq.svggr.svggs.svggt.svggu.svggw.svggy.svghk.svghm.svghn.svghr.svght.svghu.svgid.svgie.svgil.svgim.svgin.svgio.svgiq.svgir.svgis.svgit.svgje.svgjm.svgjo.svgjp.svgke.svgkg.svgkh.svgki.svgkm.svgkn.svgkp.svgkr.svgkw.svgky.svgkz.svgla.svglb.svglc.svgli.svglk.svglr.svgls.svglt.svglu.svglv.svgly.svgma.svgmc.svgmd.svgme.svgmf.svgmg.svgmh.svgmk.svgml.svgmm.svgmn.svgmo.svgmp.svgmq.svgmr.svgms.svgmt.svgmu.svgmv.svgmw.svgmx.svgmy.svgmz.svgna.svgnc.svgne.svgnf.svgng.svgni.svgnl.svgno.svgnp.svgnr.svgnu.svgnz.svgom.svgpa.svgpe.svgpf.svgpg.svgph.svgpk.svgpl.svgpm.svgpn.svgpr.svgps.svgpt.svgpw.svgpy.svgqa.svgre.svgro.svgrs.svgru.svgrw.svgsa.svgsb.svgsc.svgsd.svgse.svgsg.svgsh.svgsi.svgsj.svgsk.svgsl.svgsm.svgsn.svgso.svgsr.svgss.svgst.svgsv.svgsx.svgsy.svgsz.svgtc.svgtd.svgtf.svgtg.svgth.svgtj.svgtk.svgtl.svgtm.svgtn.svgto.svgtr.svgtt.svgtv.svgtw.svgtz.svgua.svgug.svgum.svgun.svgus.svguy.svguz.svgva.svgvc.svgve.svgvg.svgvi.svgvn.svgvu.svgwf.svgws.svgxk.svgye.svgyt.svgza.svgzm.svgzw.svg
4x3
ad.svgae.svgaf.svgag.svgai.svgal.svgam.svgao.svgaq.svgar.svgas.svgat.svgau.svgaw.svgax.svgaz.svgba.svgbb.svgbd.svgbe.svgbf.svgbg.svgbh.svgbi.svgbj.svgbl.svgbm.svgbn.svgbo.svgbq.svgbr.svgbs.svgbt.svgbv.svgbw.svgby.svgbz.svgca.svgcc.svgcd.svgcf.svgcg.svgch.svgci.svgck.svgcl.svgcm.svgcn.svgco.svgcr.svgcu.svgcv.svgcw.svgcx.svgcy.svgcz.svgde.svgdj.svgdk.svgdm.svgdo.svgdz.svgec.svgee.svgeg.svgeh.svger.svges-ca.svges-ga.svges.svget.svgeu.svgfi.svgfj.svgfk.svgfm.svgfo.svgfr.svgga.svggb-eng.svggb-nir.svggb-sct.svggb-wls.svggb.svggd.svgge.svggf.svggg.svggh.svggi.svggl.svggm.svggn.svggp.svggq.svggr.svggs.svggt.svggu.svggw.svggy.svghk.svghm.svghn.svghr.svght.svghu.svgid.svgie.svgil.svgim.svgin.svgio.svgiq.svgir.svgis.svgit.svgje.svgjm.svgjo.svgjp.svgke.svgkg.svgkh.svgki.svgkm.svgkn.svgkp.svgkr.svgkw.svgky.svgkz.svgla.svglb.svglc.svgli.svglk.svglr.svgls.svglt.svglu.svglv.svgly.svgma.svgmc.svgmd.svgme.svgmf.svgmg.svgmh.svgmk.svgml.svgmm.svgmn.svgmo.svgmp.svgmq.svgmr.svgms.svgmt.svgmu.svgmv.svgmw.svgmx.svgmy.svgmz.svgna.svgnc.svgne.svgnf.svgng.svgni.svgnl.svgno.svgnp.svgnr.svgnu.svgnz.svgom.svgpa.svgpe.svgpf.svgpg.svgph.svgpk.svgpl.svgpm.svgpn.svgpr.svgps.svgpt.svgpw.svgpy.svgqa.svgre.svgro.svgrs.svgru.svgrw.svgsa.svgsb.svgsc.svgsd.svgse.svgsg.svgsh.svgsi.svgsj.svgsk.svgsl.svgsm.svgsn.svgso.svgsr.svgss.svgst.svgsv.svgsx.svgsy.svgsz.svgtc.svgtd.svgtf.svgtg.svgth.svgtj.svgtk.svgtl.svgtm.svgtn.svgto.svgtr.svgtt.svgtv.svgtw.svgtz.svgua.svgug.svgum.svgun.svgus.svguy.svguz.svgva.svgvc.svgve.svgvg.svgvi.svgvn.svgvu.svgwf.svgws.svgxk.svgye.svgyt.svgza.svgzm.svgzw.svg
logo.pnglogo.webp
js
composer.jsoncomposer.lock
data
inc
admin-pages
class-about-admin-page.phpclass-base-admin-page.phpclass-base-customer-facing-admin-page.phpclass-broadcast-edit-admin-page.phpclass-broadcast-list-admin-page.phpclass-checkout-form-edit-admin-page.phpclass-checkout-form-list-admin-page.phpclass-customer-edit-admin-page.phpclass-customer-list-admin-page.phpclass-customizer-admin-page.phpclass-dashboard-admin-page.phpclass-discount-code-edit-admin-page.phpclass-discount-code-list-admin-page.phpclass-domain-edit-admin-page.phpclass-domain-list-admin-page.phpclass-edit-admin-page.phpclass-email-edit-admin-page.phpclass-email-list-admin-page.phpclass-email-template-customize-admin-page.phpclass-event-list-admin-page.phpclass-event-view-admin-page.phpclass-hosting-integration-wizard-admin-page.phpclass-invoice-template-customize-admin-page.phpclass-jobs-list-admin-page.phpclass-list-admin-page.phpclass-membership-edit-admin-page.phpclass-membership-list-admin-page.phpclass-migration-alert-admin-page.phpclass-payment-edit-admin-page.phpclass-payment-list-admin-page.phpclass-placeholders-admin-page.phpclass-product-edit-admin-page.phpclass-product-list-admin-page.phpclass-settings-admin-page.phpclass-setup-wizard-admin-page.phpclass-shortcodes-admin-page.phpclass-site-edit-admin-page.phpclass-site-list-admin-page.phpclass-system-info-admin-page.phpclass-tax-rates-admin-page.phpclass-template-previewer-customize-admin-page.phpclass-top-admin-nav-menu.phpclass-view-logs-admin-page.phpclass-webhook-edit-admin-page.phpclass-webhook-list-admin-page.phpclass-wizard-admin-page.php
customer-panel
debug
api
builders
checkout
class-cart.phpclass-checkout-pages.phpclass-checkout.phpclass-legacy-checkout.phpclass-line-item.php
signup-fields
class-admin-notices.phpclass-ajax.phpclass-api.phpclass-async-calls.phpclass-dashboard-widgets.phpclass-domain-mapping.phpclass-faker.phpclass-helper.phpclass-hooks.phpclass-light-ajax.phpclass-logger.phpclass-maintenance-mode.phpclass-newsletter.phpclass-requirements.phpclass-scripts.phpclass-session-cookie.phpclass-settings.phpclass-sunrise.phpclass-user-switching.phpclass-views.phpclass-whitelabel.phpclass-wp-ultimo.php
compat
country
database
debug
deprecated
development
domain-mapping
duplication
functions
gateways
helpers
installers
integrations
internal
invoices
limitations
limits
list-tables
managers
models
objects
site-templates
sso
tax
traits
ui
lang
loco.xmlpackage-lock.jsonpackage.jsonphpstan.neon.distsetuptest.shsunrise.php
tests/Admin_Pages
utils/rector
views
about.phpadmin-notices.php
admin-pages
base
broadcast
checkout
customers
dashboard-statistics
dashboard-widgets
domain
email
emails
events
invoice
legacy
limitations
memberships
payments
settings
shortcodes
sites
system-info
taxes
ui
wizards
wp-multisite-waas.php

@ -72,37 +72,37 @@ class Debug {
<a
href="<?php wu_network_admin_url('wp-ultimo-debug-pages'); ?>"
class="wu-ml-2 wu-no-underline wu-text-gray-600"
title="<?php _e('Pages', 'wp-ultimo'); ?>"
title="<?php esc_html_e('Pages', 'wp-multisite-waas'); ?>"
>
<span class="dashicons-wu-documents"></span>
<?php _e('Pages', 'wp-ultimo'); ?>
<?php esc_html_e('Pages', 'wp-multisite-waas'); ?>
</a>
<a
href="<?php echo wu_get_form_url('add_debug_generator_form'); ?>"
class="wubox wu-ml-2 wu-no-underline wu-relative wu-text-gray-600"
title="<?php _e('Generator', 'wp-ultimo'); ?>"
title="<?php esc_html_e('Generator', 'wp-multisite-waas'); ?>"
>
<span class="dashicons-wu-rocket"></span>
<?php _e('Generator', 'wp-ultimo'); ?>
<?php esc_html_e('Generator', 'wp-multisite-waas'); ?>
</a>
<a
href="<?php echo wu_get_form_url('add_debug_reset_database_form'); ?>"
class="wubox wu-ml-2 wu-no-underline wu-text-gray-600"
title="<?php _e('Reset Database', 'wp-ultimo'); ?>"
title="<?php esc_html_e('Reset Database', 'wp-multisite-waas'); ?>"
>
<span class="dashicons-wu-back-in-time"></span>
<?php _e('Reset Database', 'wp-ultimo'); ?>
<?php esc_html_e('Reset Database', 'wp-multisite-waas'); ?>
</a>
<a
href="<?php echo wu_get_form_url('add_debug_drop_database_form'); ?>"
class="wubox wu-ml-2 wu-no-underline wu-text-gray-600"
title="<?php _e('Drop Database', 'wp-ultimo'); ?>"
title="<?php esc_html_e('Drop Database', 'wp-multisite-waas'); ?>"
>
<span class="dashicons-wu-database"></span>
<?php _e('Drop Database', 'wp-ultimo'); ?>
<?php esc_html_e('Drop Database', 'wp-multisite-waas'); ?>
</a>
<?php
@ -162,15 +162,15 @@ class Debug {
$fields = [
'customers' => [
'title' => __('Customers', 'wp-ultimo'),
'desc' => __('Toggle to generate customers.', 'wp-ultimo'),
'title' => __('Customers', 'wp-multisite-waas'),
'desc' => __('Toggle to generate customers.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'customers',
],
],
'customers_number' => [
'title' => __('Number of Customers', 'wp-ultimo'),
'title' => __('Number of Customers', 'wp-multisite-waas'),
'type' => 'number',
'value' => 10,
'wrapper_html_attr' => [
@ -179,15 +179,15 @@ class Debug {
],
],
'products' => [
'title' => __('Products', 'wp-ultimo'),
'desc' => __('Toggle to generate products.', 'wp-ultimo'),
'title' => __('Products', 'wp-multisite-waas'),
'desc' => __('Toggle to generate products.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'products',
],
],
'products_number' => [
'title' => __('Number of Products', 'wp-ultimo'),
'title' => __('Number of Products', 'wp-multisite-waas'),
'type' => 'number',
'value' => 10,
'wrapper_html_attr' => [
@ -196,15 +196,15 @@ class Debug {
],
],
'memberships' => [
'title' => __('Memberships', 'wp-ultimo'),
'desc' => __('Toggle to generate memberships.', 'wp-ultimo'),
'title' => __('Memberships', 'wp-multisite-waas'),
'desc' => __('Toggle to generate memberships.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'memberships',
],
],
'memberships_number' => [
'title' => __('Number of Memberships', 'wp-ultimo'),
'title' => __('Number of Memberships', 'wp-multisite-waas'),
'type' => 'number',
'value' => 10,
'wrapper_html_attr' => [
@ -213,15 +213,15 @@ class Debug {
],
],
'sites' => [
'title' => __('Sites', 'wp-ultimo'),
'desc' => __('Toggle to generate sites.', 'wp-ultimo'),
'title' => __('Sites', 'wp-multisite-waas'),
'desc' => __('Toggle to generate sites.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'sites',
],
],
'sites_number' => [
'title' => __('Number of Sites', 'wp-ultimo'),
'title' => __('Number of Sites', 'wp-multisite-waas'),
'type' => 'number',
'value' => 10,
'wrapper_html_attr' => [
@ -230,15 +230,15 @@ class Debug {
],
],
'domains' => [
'title' => __('Domains', 'wp-ultimo'),
'desc' => __('Toggle to generate domains.', 'wp-ultimo'),
'title' => __('Domains', 'wp-multisite-waas'),
'desc' => __('Toggle to generate domains.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'domains',
],
],
'domains_number' => [
'title' => __('Number of Domains', 'wp-ultimo'),
'title' => __('Number of Domains', 'wp-multisite-waas'),
'type' => 'number',
'value' => 10,
'wrapper_html_attr' => [
@ -247,15 +247,15 @@ class Debug {
],
],
'discount_codes' => [
'title' => __('Discount Codes', 'wp-ultimo'),
'desc' => __('Toggle to generate discount codes.', 'wp-ultimo'),
'title' => __('Discount Codes', 'wp-multisite-waas'),
'desc' => __('Toggle to generate discount codes.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'discount_codes',
],
],
'discount_codes_number' => [
'title' => __('Number of Discount Codes', 'wp-ultimo'),
'title' => __('Number of Discount Codes', 'wp-multisite-waas'),
'type' => 'number',
'value' => 10,
'wrapper_html_attr' => [
@ -264,15 +264,15 @@ class Debug {
],
],
'payments' => [
'title' => __('Payments', 'wp-ultimo'),
'desc' => __('Toggle to generate payments.', 'wp-ultimo'),
'title' => __('Payments', 'wp-multisite-waas'),
'desc' => __('Toggle to generate payments.', 'wp-multisite-waas'),
'type' => 'toggle',
'html_attr' => [
'v-model' => 'payments',
],
],
'payments_number' => [
'title' => __('Number of Payments', 'wp-ultimo'),
'title' => __('Number of Payments', 'wp-multisite-waas'),
'type' => 'number',
'value' => 30,
'wrapper_html_attr' => [
@ -281,7 +281,7 @@ class Debug {
],
],
'submit_button' => [
'title' => __('Generate Data &rarr;', 'wp-ultimo'),
'title' => __('Generate Data &rarr;', 'wp-multisite-waas'),
'type' => 'submit',
'value' => 'save',
'classes' => 'button button-primary wu-w-full',
@ -298,7 +298,7 @@ class Debug {
'field_wrapper_classes' => 'wu-w-full wu-box-border wu-items-center wu-flex wu-justify-between wu-p-4 wu-m-0 wu-border-t wu-border-l-0 wu-border-r-0 wu-border-b-0 wu-border-gray-300 wu-border-solid',
'html_attr' => [
'data-wu-app' => 'debug_generator',
'data-state' => json_encode(
'data-state' => wp_json_encode(
[
'customers' => false,
'products' => false,
@ -404,8 +404,8 @@ class Debug {
$fields = [
'reset_only_fake_data' => [
'title' => __('Only reset generated data.', 'wp-ultimo'),
'desc' => __('Toggle this option to only remove data that was added by the generator previously. Untoggling this option will reset ALL data in WP Multisite WaaS tables.', 'wp-ultimo'),
'title' => __('Only reset generated data.', 'wp-multisite-waas'),
'desc' => __('Toggle this option to only remove data that was added by the generator previously. Untoggling this option will reset ALL data in WP Multisite WaaS tables.', 'wp-multisite-waas'),
'type' => 'toggle',
'value' => true,
'html_attr' => [
@ -413,7 +413,7 @@ class Debug {
],
],
'submit_button' => [
'title' => __('Reset Database &rarr;', 'wp-ultimo'),
'title' => __('Reset Database &rarr;', 'wp-multisite-waas'),
'type' => 'submit',
'value' => 'save',
'classes' => 'button button-primary wu-w-full',
@ -430,7 +430,7 @@ class Debug {
'field_wrapper_classes' => 'wu-w-full wu-box-border wu-items-center wu-flex wu-justify-between wu-p-4 wu-m-0 wu-border-t wu-border-l-0 wu-border-r-0 wu-border-b-0 wu-border-gray-300 wu-border-solid',
'html_attr' => [
'data-wu-app' => 'debug_reset_database_form',
'data-state' => json_encode(
'data-state' => wp_json_encode(
[
'reset_only' => true,
]
@ -490,10 +490,10 @@ class Debug {
$fields = [
'reset_note' => [
'type' => 'note',
'desc' => __('This action will drop the WP Multisite WaaS database tables and is irreversable.', 'wp-ultimo'),
'desc' => __('This action will drop the WP Multisite WaaS database tables and is irreversable.', 'wp-multisite-waas'),
],
'submit_button' => [
'title' => __('Drop Database Tables &rarr;', 'wp-ultimo'),
'title' => __('Drop Database Tables &rarr;', 'wp-multisite-waas'),
'type' => 'submit',
'value' => 'save',
'classes' => 'button button-primary wu-w-full',
@ -510,7 +510,7 @@ class Debug {
'field_wrapper_classes' => 'wu-w-full wu-box-border wu-items-center wu-flex wu-justify-between wu-p-4 wu-m-0 wu-border-t wu-border-l-0 wu-border-r-0 wu-border-b-0 wu-border-gray-300 wu-border-solid',
'html_attr' => [
'data-wu-app' => 'debug_drop_database_form',
'data-state' => json_encode(
'data-state' => wp_json_encode(
[
'reset_only' => true,
]