| 开发者 | anthonysgro |
|---|---|
| 更新时间 | 2026年9月17日 18:59 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
Your business data stays put. Documents, customers, articles and ledger entries live in your own database and are never sent anywhere. Two features do reach outside, and only when you ask them to:
No. Dropping the tables requires adding define( 'AMSBM_REMOVE_ALL_DATA', true ); to
your wp-config.php. Accounting retention obligations — six years in France, up to ten
elsewhere in Europe — outlast the lifetime of any plugin.
Yes. Without a transactional engine, operations cannot be made atomic. The built-in health check reports it.
No. Every feature in this package works, with no cap on the number of customers, quotes, invoices or articles, and no trial period. Some modules — purchasing, stock, deals, treasury, accounting, the document library and the WooCommerce bridge — are not in this package at all. They ship with a separate add-on. The menu lists them so you know they exist; they are not disabled code waiting for a key.
No. The plugin ships its own autoloader, its own PDF engine and its compiled
admin interface. composer.json and the JavaScript sources are included so that
the build is reproducible and the dependencies are auditable, not because
anything has to be run.
Nothing. Deactivating stops the code from running; the tables, the documents and the ledger stay exactly as they are, and reactivating picks up where you left off.
The French plan comptable général and the Luxembourg plan comptable normalisé 2020. Accounts, journals and financial years are all editable.
load_plugin_textdomain(), says why it
stays: the plugin ships its own English catalogue, which WordPress only finds
through that call.wp_enqueue_script(), or printed with
wp_print_inline_script_tag() on the standalone print page. The "copy backup
codes" button, which copied nothing, now copies.X-Content-Type-Options: nosniff.app/src/ can be rebuilt from
the plugin package alone again. A screen that is not part of this package was
imported unconditionally, so npm run build stopped on a missing file; it is
now loaded only where its file exists.languages/ams-studio-erp-invoicing-accounting-en_US.mo.bon pour accord, while
the refusal message told English customers to type "Agreed and accepted". They
typed exactly what was asked and were turned away. The expected wording now
follows the language of the site, and French stays accepted so agreements
given before a language change remain valid.ams-studio-erp-invoicing-accounting, matching the
slug registered on WordPress.org. It was ams-studio-business-management on
1155 i18n calls, which prevented the plugin from being translated through
translate.wordpress.org. The PHP prefix amsbm_, the option, table, post
type and REST namespace names are unchanged, as is the main file name.bin/i18n/ was named
amsbm-<locale>.po, which matched no text domain — WordPress would never
have loaded it. It now carries the domain, as the format requires.AMSBM\Vendor\ namespace,
prefixed with PHP-Scoper. Two plugins bundling dompdf in different versions
can no longer break each other. A document renders byte-for-byte as before.<script> tag by hand. It goes through wp_print_inline_script_tag(), which
carries the page's Content-Security-Policy nonce where there is one. It stays
a JSON data block, not executable code. Nothing changes on screen.wpdb::prepare(), with no exception.
Table and column names are bound with the %i placeholder instead of being
interpolated into the query string, and the plugin's own table names are checked
against a hard-coded list before any query is built. Nothing changes on screen:
the 132 read routes return byte-for-byte identical answers.lib/pdf/ECARTS.md.