• Az error log több napja rengeteg ilyen sort tartalmaz:
    PHP Warning: foreach() argument must be of type array|object, null given in home/public_html/wp-content/plugins/hungarian-pickup-points-for-woocommerce/index.php on line 488

Viewing 1 replies (of 1 total)
  • Thread Starter aroland

    (@aroland)

    Frissítés a problémához: sikerült azonosítani a pontos okot és egy ideiglenes megoldást is találtunk.

    A hiba a checkout_ui() függvényben keletkezik, ahol a foreach hívás előtt nincs null-ellenőrzés:

    $chosen_methods = WC()->session->get( ‘chosen_shipping_methods’ );
    foreach ($chosen_methods as $chosen_method) { // ← a problémás sor

    Ha a WooCommerce session még nem tartalmazza a chosen_shipping_methods értéket – ami CheckoutWC használatakor bizonyos AJAX hívásoknál rendszeresen előfordul –, a $chosen_methods null lesz és a foreach PHP Warning-ot dob. Megjegyezném, hogy a cart_ui() és a hide_shipping_address() függvényekben ez már le van védve if($chosen_methods) ellenőrzéssel, de a checkout_ui()-ban és a validate_checkout()-ban hiányzik.

    Ideiglenes megoldásként egy WPCode snippettel váltottuk le a hookot:

    add_action( ‘wp’, function() {
    $plugin = VP_Woo_Pont();
    remove_action( ‘woocommerce_review_order_after_shipping’, array( $plugin, ‘checkout_ui’ ) );
    add_action( ‘woocommerce_review_order_after_shipping’, function() use ( $plugin ) {
    if ( ! WC()->session ) return;
    $chosen_methods = WC()->session->get( ‘chosen_shipping_methods’ );
    if ( empty( $chosen_methods ) ) return;
    $plugin->checkout_ui();
    });
    }, 20 );

    Kérjük, hogy a következő frissítésben a checkout_ui() és validate_checkout() függvényekbe kerüljön null/empty ellenőrzés a foreach hívások elé.

Viewing 1 replies (of 1 total)

You must be logged in to reply to this topic.