• 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:10

    Jedna 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.

Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
  • The topic ‘Payment method empty data causing fatal error while creating form (options page)’ is closed to new replies.