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

@@ -22,103 +22,103 @@ use WP_Ultimo\Database\Payments\Payment_Status;
*/
return [
'customer_id' => [
'description' => __('The ID of the customer attached to this payment.', 'wp-ultimo'),
'description' => __('The ID of the customer attached to this payment.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => true,
],
'membership_id' => [
'description' => __('The ID of the membership attached to this payment.', 'wp-ultimo'),
'description' => __('The ID of the membership attached to this payment.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => true,
],
'parent_id' => [
'description' => __('The ID from another payment that this payment is related to.', 'wp-ultimo'),
'description' => __('The ID from another payment that this payment is related to.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => false,
],
'currency' => [
'description' => __("The currency of this payment. It's a 3-letter code. E.g. 'USD'.", 'wp-ultimo'),
'description' => __("The currency of this payment. It's a 3-letter code. E.g. 'USD'.", 'wp-multisite-waas'),
'type' => 'string',
'required' => false,
],
'subtotal' => [
'description' => __('Value before taxes, discounts, fees and other changes.', 'wp-ultimo'),
'description' => __('Value before taxes, discounts, fees and other changes.', 'wp-multisite-waas'),
'type' => 'number',
'required' => true,
],
'refund_total' => [
'description' => __('Total amount refunded.', 'wp-ultimo'),
'description' => __('Total amount refunded.', 'wp-multisite-waas'),
'type' => 'number',
'required' => false,
],
'tax_total' => [
'description' => __('The amount, in currency, of the tax.', 'wp-ultimo'),
'description' => __('The amount, in currency, of the tax.', 'wp-multisite-waas'),
'type' => 'number',
'required' => false,
],
'discount_code' => [
'description' => __('Discount code used.', 'wp-ultimo'),
'description' => __('Discount code used.', 'wp-multisite-waas'),
'type' => 'string',
'required' => false,
],
'total' => [
'description' => __('This takes into account fees, discounts and credits.', 'wp-ultimo'),
'description' => __('This takes into account fees, discounts and credits.', 'wp-multisite-waas'),
'type' => 'number',
'required' => true,
],
'status' => [
'description' => __("The payment status: Can be 'pending', 'completed', 'refunded', 'partially-refunded', 'partially-paid', 'failed', 'cancelled' or other values added by third-party add-ons.", 'wp-ultimo'),
'description' => __("The payment status: Can be 'pending', 'completed', 'refunded', 'partially-refunded', 'partially-paid', 'failed', 'cancelled' or other values added by third-party add-ons.", 'wp-multisite-waas'),
'type' => 'string',
'required' => true,
'enum' => Payment_Status::get_allowed_list(),
],
'gateway' => [
'description' => __('ID of the gateway being used on this payment.', 'wp-ultimo'),
'description' => __('ID of the gateway being used on this payment.', 'wp-multisite-waas'),
'type' => 'string',
'required' => false,
],
'product_id' => [
'description' => __('The ID of the product of this payment.', 'wp-ultimo'),
'description' => __('The ID of the product of this payment.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => false,
],
'gateway_payment_id' => [
'description' => __('The ID of the payment on the gateway, if it exists.', 'wp-ultimo'),
'description' => __('The ID of the payment on the gateway, if it exists.', 'wp-multisite-waas'),
'type' => 'string',
'required' => false,
],
'discount_total' => [
'description' => __('The total value of the discounts applied to this payment.', 'wp-ultimo'),
'description' => __('The total value of the discounts applied to this payment.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => false,
],
'invoice_number' => [
'description' => __('Sequential invoice number assigned to this payment.', 'wp-ultimo'),
'description' => __('Sequential invoice number assigned to this payment.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => false,
],
'cancel_membership_on_refund' => [
'description' => __('Holds if we need to cancel the membership on refund.', 'wp-ultimo'),
'description' => __('Holds if we need to cancel the membership on refund.', 'wp-multisite-waas'),
'type' => 'boolean',
'required' => false,
],
'date_created' => [
'description' => __('Model creation date.', 'wp-ultimo'),
'description' => __('Model creation date.', 'wp-multisite-waas'),
'type' => 'string',
'required' => false,
],
'date_modified' => [
'description' => __('Model last modification date.', 'wp-ultimo'),
'description' => __('Model last modification date.', 'wp-multisite-waas'),
'type' => 'string',
'required' => false,
],
'migrated_from_id' => [
'description' => __('The ID of the original 1.X model that was used to generate this item on migration.', 'wp-ultimo'),
'description' => __('The ID of the original 1.X model that was used to generate this item on migration.', 'wp-multisite-waas'),
'type' => 'integer',
'required' => false,
],
'skip_validation' => [
'description' => __('Set true to have field information validation bypassed when saving this event.', 'wp-ultimo'),
'description' => __('Set true to have field information validation bypassed when saving this event.', 'wp-multisite-waas'),
'type' => 'boolean',
'required' => false,
],