Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz The DJ #14219 üzenetére

    Gyors rápillantás alapján (nem merültem bele, közöm nincs a WordPress-hez, de a hibák elég nyilvánvalóak):
    eleve rossz a visszatérési érték vizsgálata, mert ahelyett, hogy megnézné, egyáltalán elvárt értéket kapott-e eredményül, egyből tömbszerűen kezeli a visszatérési értéket - pedig esetedben nyilvánvaló a hibaüzenetből, hogy NEM tömböt kapsz vissza, hanem egy WP_Error objektumot ("Fatal error: Cannot use object of type WP_Error as array"). Ennek meglétét, ahogy itt a doksiban írják, az is_wp_error függvénnyel lehet vizsgálni.

    A kód tehát egy szar. Így néz ki most:

    $response = wp_remote_post( $paypal_url, $options );
    if ( 'VERIFIED' == $response['body'] ) {
    $this->paypal_ipn_values = $received_values;
    $this->session_id = $received_values['invoice'];
    } else {
    exit( "IPN Request Failure" );
    }

    erre kéne javítanod, felhasználva a WordPress API-t (amit most látok először :D):

    $response = wp_remote_post( $paypal_url, $options );
    if ( is_wp_error($response) ) {
    // meglehetősen undorító gusztustalan hányadék ez az exit()-es "hibakezelés"...!!!
    exit( "IPN Request Failure" );
    }
    elseif($response['body'] == 'VERIFIED') {
    $this->paypal_ipn_values = $received_values;
    $this->session_id = $received_values['invoice'];
    }
    else {
    // tököm tudja, itt mi lenne!
    }

    A lényeg: nálad sajnos abba az ágba fog futni a kód, ahol azt fogja írni, hogy "IPN Request Failure". Ergo itt még valami mindig nem tiszta, valamiért IPN-problémád van. Most ennyire volt időm, szóval konkrétan nem tudom, miért van ez.

Új hozzászólás Aktív témák