conedevelopment / simplepay-gateway

OTP SimplePay bővítmény WooCommerce (WordPress) áruházak részére.
https://simplepay.conedevelopment.com
MIT License
57 stars 22 forks source link

Kompabilitási probléma a WooCommerce Sequential Order Numbers Pro pluginnal, kikapcsolhatatlan prefix #125

Closed zbacsi closed 1 year ago

zbacsi commented 1 year ago

Leírás

A WooCommerce Sequential Order Numbers Pro plugin egy szép, formázott order numbert készít. Hiába állítom üresre a prefixet, a Simplepay már a wc- prefix-el kapja meg a rendelésszámot. A probléma az IPN-nél jelentkezik. A handleNotification függvényben a Str::idFromRef($payload['orderRef']) eltávolítja a prefixeket, de a suffixeket nem (pl. ha évszám van a rendelésszám végén).

Ha nincs meg a rendelés, ezzel a kiegészítéssel találom meg a formázott azonosító alapján:

`

    $input = file_get_contents('php://input');

    $payload = json_decode($input, true);

    $order = wc_get_order(Str::idFromRef($payload['orderRef']));

    if (! $order instanceof WC_Order) {
       // search for the order by custom order number
        $query_args = array(
            'numberposts' => 1,
            'meta_key'    => '_order_number_formatted',
            'meta_value'  => preg_replace("/^wc-/","", $payload['orderRef']),
            'post_type'   => 'shop_order',
            'post_status' => 'any',
            'fields'      => 'ids',
        );

        $posts            = get_posts( $query_args );
        list( $order_id ) = ! empty( $posts ) ? $posts : null;            
        // order was found
        if ( $order_id !== null ) {
            $order=wc_get_order($order_id);
        }
  }

 if (! $order instanceof WC_Order) {
     die(__('Order not found.', 'cone-simplepay'));
 }

`

Biztosan lehetne valami okosabb megoldást találni a makacs wc- prefix eltávolítására, nekem most ez volt a gyors.

Reprodukáláshoz szükséges lépések

  1. Használd a WooCommerce Sequential Order Numbers Pro plugint
  2. Állíts prefixet, suffixet
  3. A Simplay Gatewayben a Tranzakció Előtag legyen üres.
iamgergo commented 1 year ago

Hello,

Köszi az infót.

Ebben az ingyenes verzióban ezt már nem tervezzük javítani.