• Resolved andrej87

    (@andrej87)


    Dobrý deň, vo svojom e-shope používam jeden z mnohých product add-ons pluginov, ktorý cez meta fields pridáva k produktom doplnky, ktoré si zákazník vyberie na stránke.

    V backende, v detailoch objednávky, sa tieto meta fields zobrazujú pekne oddelene pod sebou v samostatných riadkoch, názov doplnku je boldom a pod., avšak po exportovaní do Superfaktúry sa všetky meta fields zobrazia pod produktom v detailnom popise položky za sebou, pričom sú oddelené len čiarkami.

    Keď si zákazník k nejakému produktu zvolí viacero doplnkov naraz, prípadne jeden z doplnkov je venovanie s nejakým vlastným (dlhším) textom od zákazníka, stráca sa prehľadnosť a pomerne ťažko sa rozlišujú jednotlivé doplnky.

    Je možné nejakým spôsobom prispôsobiť exportované zobrazenie produktových meta fields tak, aby sa napr. zobrazovali v samostatných riadkoch pod sebou, prípadne aby bol prázdny riadok medzi nimi, alebo nejaká ich časť bola zvýraznená boldom?

    Vopred ďakujem za odpoveď!

Viewing 10 replies - 1 through 10 (of 10 total)
  • Plugin Author superfaktura

    (@superfaktura)

    Dobrý deň,

    popis položky na faktúre môžte zmeniť pomocou filtra sf_item_data, napríklad takto:

    function my_item_data($item_data, $order, $product) {
    $item_data['description'] = "Popis položky\n";
    $item_data['description'] .= "Nový riadok";
    return $item_data;
    }
    add_filter('sf_item_data', 'my_item_data', 10, 3);

    Zvýraznenie boldom v popise položky SuperFaktúra neumožňuje.

    Thread Starter andrej87

    (@andrej87)

    Ďakujem za odpoveď, skúšali sme za pomoci uvedeného filtra editovať tie meta fieldy, avšak narazili sme na nasledovný problém.

    Obsah všetkých meta fieldov z objednávok sa exportuje do SuperFaktúry v jednom súvislom riadku, pričom jednotlivé meta fieldy sú oddelené čiarkou, takto nejako:

    [description] => Doplnok 1: XXX (+6,90 €), Doplnok 2: XXX (+14,90 €), Doplnok 3: Všetko najlepšie, veľa zdravia a šťastia! (+2,90 €)

    Tento string môžeme upraviť, avšak keď nahradíme napr. čiarky znakom \n, aby to skočilo do nového riadku, obsah meta fieldov na faktúre sa úplne rozseká, keďže čiarky oddelujú nielen jednotlivé meta fieldy, ale nachádzajú sa aj v cenách (+6,90 €), prípadne v texte venovaní od zákazníkov.

    Čo by sme potrebovali by bola buď možnosť napojiť sa na skladanie tej [description] a tam po každej meta field položke pridať \n, alebo keby sa ten separátor (čiarka) dal nejako overridenúť cez filter – bolo by niečo z tohto možné?

    Vopred ďakujem za odpoveď.

    Plugin Author superfaktura

    (@superfaktura)

    Vy ale predsa nemusíte pracovať len s tým, čo už v description je. Do filtra vstupujú ako premenné objednávka aj produkt, môžte si teda description vyskladať akokoľvek potrebujete.

    Thread Starter andrej87

    (@andrej87)

    Kolega to skúšal rôznymi spôsobmi, ale nejako sa nám to nedarí :-/

    Mohol by som Vás poprosiť na základe tej našej description

    [description] => Doplnok 1: XXX (+6,90 €), Doplnok 2: XXX (+14,90 €), Doplnok 3: Všetko najlepšie, veľa zdravia a šťastia! (+2,90 €)

    ukázať nám, ako by bolo treba upraviť ten filter, ktorý ste nám poslali, aby sme docielili to, že jednotlivé čiarkou oddelené doplnky sa budú na faktúre zobrazovať v samostatných riadkoch?

    Vopred veľmi pekne ďakujem.

    Plugin Author superfaktura

    (@superfaktura)

    Ak si nechcete, alebo neviete, vytiahnuť údaje z vami používaného pluginu pre product add-ons a naformátovať si ich ako len chcete, pre tento váš konrétny príklad je preformátovanie na samostatné riadky veľmi jednoduché. Nenahrádzajte novým riadkom všetky čiarky, ale len čiarky nasledujúce po cene. Nahraďte teda “€),” reťazcom “€)\n”.

    Thread Starter andrej87

    (@andrej87)

    Až také jednoduché to v našom prípade žiaľ nie je, keďže nie všetky meta fieldy k produktom sa končia cenou – ospravedlňujem, mal som do tej description uviesť aj product addon bez ceny, je to u nás vždy kombinácia rôznych doplnkov, niektorých bez ceny, niektorých s cenou:

    [description] => Doplnok 1: XXX, Doplnok 2: XXX (+6,90 €), Doplnok 3: XXX (+14,90 €), Doplnok 4: Všetko najlepšie, veľa zdravia a šťastia! (+2,90 €)

    Pri takejto zostave doplnkov je nejaká možnosť upraviť to cez ten váš filter tak, aby sa bol každý doplnok zobrazený v samostatnom riadku?

    Plugin Author superfaktura

    (@superfaktura)

    V tom prípade môžte skúsiť použiť regulárny výraz. A ak sa vám to nepodarí, vrátiť sa k prvému scenáru, ktorý som vám navrhol, teda vytiahnuť si tieto údaje priamo z pluginu, ktorým tieto údaje produktu pridávate a vo filtri si vyskladať description úplne po svojom.

    Dobry den,

    tie meta sa skladaju velmi rozne, niektore s cenou, niektore bez, poradie ako kedy. Riesit to cez nejake sialene regularne vyrazy, to nie je cesta.

    Prosim dorobte filter na ten separator meta fieldov ako sa sklada ten retazec predtym ako to ide do superFA. Zide sa to ucite nielen nam. Lepsie ako si pracne programovat to skladanie. Predstavujeme si to nejako takto:

    function my_meta_separator($separator)
    {
       $separator = "\n";
       return $separator;
    }
    add_filter('sf_order_item_meta_separator', 'my_meta_separator', 10, 3);
    • This reply was modified 9 months, 4 weeks ago by sectorx.
    • This reply was modified 9 months, 4 weeks ago by sectorx.
    Plugin Author superfaktura

    (@superfaktura)

    Zjavne sa vám do toho veľmi nechce, keď píšete “sialene regularne vyrazy” alebo “pracne programovat to skladanie” 🙂

    Doteraz sme žiadnu podobnú požiadavku nemali, tento filter využijete asi len vy. Ale dobre, keďže s tým neviete pohnúť, doplnili sme filter do pluginu, od verzie 1.20.5.

    Príklad použitia:

    function my_attr_separator($separator) {
        return "\n";
    }
    add_filter('sf_attr_separator', 'my_attr_separator', 10, 1);
    Thread Starter andrej87

    (@andrej87)

    Ďakujeme, funguje to výborne 🙂

Viewing 10 replies - 1 through 10 (of 10 total)
  • The topic ‘Prispôsobenie zobrazenia meta fields na faktúre’ is closed to new replies.