Payment method empty data causing fatal error while creating form (options page)
-
Niektore popularne platene ceske pluginy, ktore vytvaraju platobne metody (PaymentGateways) pre Woocommerce maju specificku metodu ich blokovania, pokial nie je licencia verifikovana.
Platobna metoda ostane vo vypise platobnych metod v nastaveniach Woocommerce, ale nema ani id ani title.
Toto sa udeje napriklad pri prenose produkcneho webu na testovaci, kedy zmenena URL noveho prostredia nie je validovana pre zadanu licenciu.
Situacia, kedy su id a title platobnej metody prazdne vyvola fatal error v plugine Packeta:
Fatal error: Uncaught Exception: Component name must be non-empty alphanumeric string, '' given.
in .../packeta/deps/nette/component-model/src/ComponentModel/Container.php on line 39
Call stack:
Packetery\N\C\Container::addComponent()
app/plugins/packeta/deps/nette/forms/src/Forms/Container.php:201
Packetery\N\F\Container::addComponent()
app/plugins/packeta/deps/nette/component-model/src/ComponentModel/ArrayAccess.php:25
Packetery\N\F\Container::offsetSet()
app/plugins/packeta/deps/nette/forms/src/Forms/Container.php:366
Packetery\N\F\Container::addContainer()
app/plugins/packeta/src/Packetery/Module/Options/Page.php:276
Packetery\M\O\Page::createAutoSubmissionForm()
app/plugins/packeta/src/Packetery/Module/Options/Page.php:702
Packetery\M\O\Page::processActions()
wp-includes/class-wp-hook.php:324
WP_Hook::apply_filters()
wp-includes/class-wp-hook.php:348
WP_Hook::do_action()
wp-includes/plugin.php:517
do_action()
wp-admin/admin.php:175
require_once()
wp-admin/index.php:10Jedna sa o tento kod z
packeta/src/Packetery/Module/Options/Page.php:276 a okolie:
foreach ( $gateways as $gateway ) {
$paymentMethodEventsMethod = $paymentMethodEvents->addContainer(
$this->optionsProvider->sanitizePaymentGatewayId( $gateway->id )
);
$paymentMethodEventsMethod->addSelect( 'event', $gateway->get_method_title(), $eventChoices )
->setPrompt( __( 'Select event', 'packeta' ) )
->checkDefaultValue( false );
}Bolo by mozne testovat hodnotu $gateway->id a $gateway->get_method_title() na prazdnotu pred volanim addContainer()?
Workaround, ktory zatial pouzivame je (kedze wp-admin nefunguje, je potrebny pristup k wp-cli):
1. Vypnut Packeta plugin cez wp-cli.
2. Pozadavat test licencie do pluginov pre platobne metody, pripadne ich deaktivovat.
3. Zapnut Packeta plugin.
- The topic ‘Payment method empty data causing fatal error while creating form (options page)’ is closed to new replies.