Forum Replies Created

Viewing 6 replies - 1 through 6 (of 6 total)
  • Plugin Support martin35

    (@martin35)

    Dobrý deň,

    hodnota upravená cez filter sf_item_data sa v plugine nijako neescapuje ani netrimuje a odosiela sa do SuperFaktúry priamo v dátach položky faktúry. Odstránenie úvodnej medzery alebo ignorovanie HTML tagov v názve položky prebieha až na strane API SuperFaktúry a plugin na to dosah nemá.

    Plugin Support martin35

    (@martin35)

    Názov $item vychádza z už existujúcej premennej v kóde pluginu, kde sa aktuálna položka objednávky spracováva práve pod týmto názvom. Pri implementácii filtra si však parameter môžete vo vlastnej funkcii pomenovať ľubovoľne, napríklad $order_item. Dôležité je len poradie parametrov.

    add_filter( 'sf_item_data', 'custom_sf_item_custom_meta', 10, 4 );
    function custom_sf_item_custom_meta( $item_data, $order, $product, $order_item ) {
    $meta = $order_item->get_meta( 'moje_custom_meta1', true );
    // ...
    return $item_data;
    }
    • This reply was modified 3 weeks, 3 days ago by martin35. Reason: Doplnenie príkladu
    Plugin Support martin35

    (@martin35)

    Dobrý deň,

    áno, máte pravdu. V pôvodnej verzii filtra sf_item_data sa nedala spoľahlivo rozlíšiť konkrétna položka objednávky, ak boli v objednávke dve samostatné položky rovnakého produktu.

    Doplnili sme preto vo verzii 1.52.4 do filtra štvrtý parameter $item, ktorý predstavuje aktuálnu položku objednávky WC_Order_Item_Product.

    Použitie je napríklad takéto:

    add_filter( 'sf_item_data', 'custom_sf_item_custom_meta', 10, 4 );
    function custom_sf_item_custom_meta( $item_data, $order, $product, $item ) {
    if ( $product && (int) $product->get_id() === 12345 ) {
    $moje_custom_meta1 = $item->get_meta( 'moje_custom_meta1', true );
    if ( ! empty( $moje_custom_meta1 ) ) {
    $item_data['description'] = 'custom meta: ' . $moje_custom_meta1;
    }
    }
    return $item_data;
    }

    Dôležité je nastaviť pri add_filter() počet argumentov na 4. Pôvodné použitia filtra s 3 parametrami ostávajú spätne kompatibilné.

    Plugin Support martin35

    (@martin35)

    Dobrý deň,

    hook sf_after_invoice_create bol pridaný vo verzii 1.51.0 pluginu. Môžte overiť, akú verziu pluginu máte nainštalovanú?

    Plugin Support martin35

    (@martin35)

    Dobrý deň,

    áno, v plugine je action hook sf_after_invoice_create, ktorý sa spustí po úspešnom vytvorení faktúry a obsahuje celú odpoveď zo SuperFaktúra API vrátane údajov o faktúre.

    Použiť ho môžte napríklad takto:

    add_action( 'sf_after_invoice_create', function( $response, $order, $type ) {
    if ( isset( $response->data->Invoice->exchange_rate ) ) {
    $order->update_meta_data( '_sf_exchange_rate', $response->data->Invoice->exchange_rate );
    $order->save();
    }
    }, 10, 3 );
    Plugin Support martin35

    (@martin35)

    Dobrý deň,

    ďakujem za upozornenie na chybu. Vo verzii 1.50.3 je táto chyba odstránená a na faktúrach sa už štát zobrazuje správne.

Viewing 6 replies - 1 through 6 (of 6 total)