woocart / woocommerce-upn

Prikaže podatke za nakazilo in UPN Nalog s QR kodo ob koncu naročila, v sporočilu da je bilo naročilo sprejeto in pod pregledom naročil.
MIT License
14 stars 6 forks source link

UPN obrazec se ne pošlje preko e-mail naslova #1

Closed mzemljak closed 3 years ago

mzemljak commented 3 years ago

Prvo - Super zaveda! Vse pohvale! 👍

UPN obrazec se ob oddanem naročilu brez problemov prikaže.

Imam pa problem, da se UPN obrazec ne pošlje preko e-maila. UPN obrazca niti ne vidim, če grem pod naročila.

Je potrebna kakšna posebna nastavitev?

Za pošiljanje računov pa uporabljam Challan – PDF Invoice & Packing Slip for WooCommerce

dz0ny commented 3 years ago

Kakor vidim se dodatne informacije vidijo samo če je Pro verzija. Načeloma se lahko UPN pokaze kjerkoli. Po defaultu pa se samo na teh dveh mestih https://github.com/woocart/woocommerce-upn/blob/main/index.php#L33 (ko zaključi naročilo, in v pregledu naročil), vendar to vidi samo uporabnik. Glede na to da je ta hook isti kot za email, predvidevam da ga Challan odstrani. Preveri če kateri drug plugin modificira hook woocommerce_email_before_order_table

image

mzemljak commented 3 years ago

Hvala za odgovor.

Očitno sem narobe razumel kje se UPN obrazec prikazuje. Pri oddanem naročilu in v pregledu naročil uporabnika se UPN obrazec pokaže pravilno. Stvar deluje tako kot je oglaševana.

Uporabljam PRO verzijo. Sem tudi odstranil plugin in je težava pri e-mailu je še vedno prisotna. Problem mora biti nekje drugje.

hook woocommerce_order_details_after_customer_details je edini, ki ga zaznam da se zgodi ob končanem naročilu. Sem začetnik v svetu PHP-ja in Wordpress-a, uporabil sem Query Monitor za pregled hooks-ov. Hook woocommerce_email_before_order_table nisem zasledil ob zaključenem naročilu.

Bi mogoče bilo treba uporabit kaj takega?

add_filter( 'woocommerce_email_attachments', 'attach_order_notice', 10, 3 );
function attach_order_notice ( $attachments, $email_id, $order ) 
{
    // Only for "New Order" email notification (for admin)
    if( $email_id == 'new_order'  ){
        $attachments[] = get_template_directory() . '/notice.pdf';
        //potrebno dodat k obstoječim attachments
    }
    return $attachments;
}

Vendar to je samo za Admin-a, potrebno bi bilo prilagodit, da se pošlje tudi uporabniku.

Z veseljem contributam v repozitorij, vendar bom potreboval malo pomoči.

Dobim pa spodnji error pri tem pluginu s Query Monitor image

Se pa isti NOTICE pojavi tudi če greš pod pregled naročil od uporabnika.

dz0ny commented 3 years ago

Za email se uporablja https://github.com/woocommerce/woocommerce/blob/master/templates/emails/email-order-details.php

In še par drugih če pogledaš v https://github.com/woocommerce/woocommerce/blob/master/templates/emails/customer-invoice.php

Teh hook nebi smel videti ker se izvejo izven tvojega requesta. Moraš pa hendalt oba primera (ko je htm email in ko je statičen)

Plugin ne dela priponk (ker jih je treba shraniti nekam) ker je to problematično zaradi varnosti, hitrosti. Tako da tista z attachemnti odpade.

Če želiš prikazat v adminu v manage-orders/edit lahko uporabiš tole https://stackoverflow.com/questions/45615324/add-a-custom-meta-box-on-order-edit-pages-and-display-it-on-the-customer-order-p

Katero temo pa uporabljaš? Ali imaš custom template za mail?

mzemljak commented 3 years ago

Uporabljam Flatsome temo in za email template uporabljam Kadence WooCommerce Email Designer z Free Fluid Template

dz0ny commented 3 years ago

Uporabljam Flatsome temo in za email template uporabljam Kadence WooCommerce Email Designer z Free Fluid Template

Hvala, se bom lokalno poigral in videl kje je problem.

mzemljak commented 3 years ago

Uporabljam Flatsome temo in za email template uporabljam Kadence WooCommerce Email Designer z Free Fluid Template

Hvala, se bom lokalno poigral in videl kje je problem.

Uspelo najti problem?

Uporabljam tudi ta plugin Advanced Shipment Tracking for WooCommerce, ki doda podatke o sledenju "Before order Details". image Sem tudi to propal spremenit, vendar je rezultat isti. V e-mailu se UPN obrazec ne prikaže.

dz0ny commented 3 years ago

Uporabljam tudi ta plugin Advanced Shipment Tracking for WooCommerce, ki doda podatke o sledenju "Before order Details".

Vidim da uporablja zgoraj omenjen hook https://plugins.trac.wordpress.org/browser/woo-advanced-shipment-tracking/trunk/woocommerce-advanced-shipment-tracking.php#L155

Uspelo najti problem? Ni bilo še časa :)

dz0ny commented 3 years ago

image

Lahko posim preveriš z zadnjo verzijo. Dodal sem da popravi če je IBAN vnešen z neveljavnimi znaki.

mzemljak commented 3 years ago

Preveril in ne deluje. Izklopil sem vse plugin-e. Pustil samo woocommerce in upn, vendar še vedno ni delovalo. Tabelo s podatki lepo izpiše, zgolj slike UPN obrazca ne pokaže.

Update: Če pogledam plain html, izgleda da img tag obstaja. vendar ga ne prikaže. Poizkusil sem odpret v gmailu je prazna vrstica, v widnows Mail je bel kvadratek.

<img src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB=
VIAAAKECAMAAADSXTHwAAABcVBMVEX/////.......

Update2: Očinto ni problem v plugin-u, ampak v tem da gmail ne podpira embedded images. base64 not being decoded in gmail [closed] Base64 images to gmail

dz0ny commented 3 years ago

Ugh, torej je potrebno dodati attachment hook, in potem v mailu nakazati na sliko v attachmentih. Mogoče je potem bolje da se dodat fallback na web page ki pravilno pokaze potem QR, kot pa delat celotno implementacijo z attachmenti.

Predvsem je problem zelo slaba podpora, z obilo potrebni hackov: https://wordpress.org/support/topic/woocommerce_email_attachments-content-id/

mzemljak commented 3 years ago

Dobro, hvala za pomoč. Za enkrat bom pustil, da se prikaže samo ob nakupu na spletni strani.