Webbshop för klädbeställning

Permalänk
Medlem
Skrivet av serdyllon:

Hmm. Jag känner inte till att någon uppdatering skall ha skett som påverkar WooCommerce på det sättet. Det mest troliga är att du har ett problem med din host där sidan lagras.

De felkällor jag spontant kommer att tänka på är:

  1. Om du har gjort ändringar i template-filerna som påverkar e-postmallarna kan dessa ha skrivits över i samband med en uppdatering av WooCommerce. Det är inte varje uppdatering som påverkar dessa template-filer, vilket är varför det kan ha dröjt innan ändringarna skrevs över och felet uppstod.

  2. Om du har bytt host kan det vara så att din nya host inte tillåter Wordpress/WooCommerce att skicka mail, t.ex. genom att SMTP är inaktiverat.

  3. Om sidan har börjat generera många mail kan din host (även om du inte har bytt) ha stängt av SMTP-tjänsten för att belastningen överskrider vad som är tillåtet i enligt hosting-avtalet.

Problemet när man inte använder en dedikerad SMTP-tjänst är att WooCommerce då skickar alla mail via PHP. Varje mail blir en PHP request till webbservern som då letar efter en intern mailserver att utföra själva jobbet. Vissa hosts har inbyggd mailserver, andra inte. Även om det ingår kan det många gånger finnas begränsningar som gör att när du passerat ett visst antal mail totalt (eller under en specifik tidsperiod) så stoppas all utgående e-posttrafik temporärt (eller tills vidare).

Jag har inte gjort några ändringar. Provade även att kopiera template över till child theme eller rättare sagt WP gjorde det. Funkade inte heller.

Det skickas bara något enstaka mejl i månaden så någon gräns kan jag omöjligt att kommit upp till.

Har heller inte bytt host. Men php är uppdaterat till senaste för ett tag sedan på inrådan från WP. Kan det ha fuckat up det?

Permalänk
Medlem

@serdyllon: Provat att köra på originaltema istället för child men det funkar inte heller. Fasen har verkligen inga fler idéer om vad som skulle kunna vara fel.

Skulle du vilja få admin inloggning och ge det ett 5 minuters kik om du med ditt tränade direkt ser vad fasen som är fel?

Permalänk
Medlem
Skrivet av Svantesson666:

@serdyllon: Provat att köra på originaltema istället för child men det funkar inte heller. Fasen har verkligen inga fler idéer om vad som skulle kunna vara fel.

Skulle du vilja få admin inloggning och ge det ett 5 minuters kik om du med ditt tränade direkt ser vad fasen som är fel?

Då är det troligtvis något som blivit fel med PHP mail. Uppdateringen av PHP är troligen boven i dramat.

Har du möjlighet att logga in och kolla PHP settings för att försäkra dig om att PHP mail inte är inaktiverad? Vissa hosts stänger av den som default. Kanske var den aktiverad innan uppdateringen, men att det nu har ändrats för ditt konto?

Om PHP mail är aktiverad på ditt konto så kan du pröva att följa den här guiden:
https://www.arclab.com/en/kb/php/how-to-test-and-fix-php-mail...

Sitter just nu med en stor flytt av e-post och en integration mellan ett system och nytt externt lager så kommer inte ha tid att kika på detta för dig just nu. Bästa är om du kan testa ovanstående tips, för det är vad jag själv hade gjort.

Permalänk
Medlem
Skrivet av serdyllon:

Då är det troligtvis något som blivit fel med PHP mail. Uppdateringen av PHP är troligen boven i dramat.

Har du möjlighet att logga in och kolla PHP settings för att försäkra dig om att PHP mail inte är inaktiverad? Vissa hosts stänger av den som default. Kanske var den aktiverad innan uppdateringen, men att det nu har ändrats för ditt konto?

Om PHP mail är aktiverad på ditt konto så kan du pröva att följa den här guiden:
https://www.arclab.com/en/kb/php/how-to-test-and-fix-php-mail...

Sitter just nu med en stor flytt av e-post och en integration mellan ett system och nytt externt lager så kommer inte ha tid att kika på detta för dig just nu. Bästa är om du kan testa ovanstående tips, för det är vad jag själv hade gjort.

Försökte hitta inställningar för PHP mail hos One.com men hittade inget. Så jag provade istället att skapa test.php enligt guiden och laddade sedan upp den på min server och körde skriptet. Får meddelande "Message accepted" och jag får också mejlet skickat till min inkorg. Så det verkar ju funka......fan...

Oändligt tacksam för att all hjälp du gett mig så förbannat tråkigt att det här hänt eftersom det gör hela sidan lite mer eller mindre värdelös......gahhh!

Permalänk
Medlem

Mindes fel. Hade inte ens uppdaterat PHP. Det var på min riktiga hemsidan i min bolag jag gjort det. Ligger kvar på PHP 7.3 på den här sidan, itdesk.se. Så det kan ju inte vara det heller då. Kan iofs prova att uppdatera till den senaste, det kan ju knappast göra saker sämre än de redan är... =/

Permalänk
Medlem

Får snart göra om hela sidan från början. Det kanske kan hjälpa? Se till att jag lyckas göra en backup bara först på alla produkter, så jag slipper lägga upp dem manuellt igen.

Permalänk
Medlem

Bara för intresse så ser mallen i WooCommerce ut så här. Har inte ändrat något i den, men börjar misstänka att det är något här som kanske ställer till det nu på ett sätt det inte gjort förut.

<?php /** * Admin new order email * * This template can be overridden by copying it to yourtheme/woocommerce/emails/admin-new-order.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see https://docs.woocommerce.com/document/template-structure/ * @package WooCommerce\Templates\Emails\HTML * @version 3.7.0 */ defined( 'ABSPATH' ) || exit; /* * @hooked WC_Emails::email_header() Output the email header */ do_action( 'woocommerce_email_header', $email_heading, $email ); ?> <?php /* translators: %s: Customer billing full name */ ?> <p><?php printf( esc_html__( 'You’ve received the following order from %s:', 'woocommerce' ), $order->get_formatted_billing_full_name() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p> <?php /* * @hooked WC_Emails::order_details() Shows the order details table. * @hooked WC_Structured_Data::generate_order_data() Generates structured data. * @hooked WC_Structured_Data::output_structured_data() Outputs structured data. * @since 2.5.0 */ do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::order_meta() Shows order meta data. */ do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::customer_details() Shows customer details * @hooked WC_Emails::email_address() Shows email address */ do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email ); /** * Show user-defined additional content - this is set in each email's settings. */ if ( $additional_content ) { echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) ); } /* * @hooked WC_Emails::email_footer() Output the email footer */ do_action( 'woocommerce_email_footer', $email );

Permalänk
Medlem

Har du kollat med one.com? De kanske kan kika i sina loggar?

När du körde test-scriptet som länkades här, använde du samma avsändaradress och mottagare som du gör från wordpress?

Permalänk
Medlem
Skrivet av jocke92:

Har du kollat med one.com? De kanske kan kika i sina loggar?

När du körde test-scriptet som länkades här, använde du samma avsändaradress och mottagare som du gör från wordpress?

Har inte kollat med One.com men provade att klättra skriptet med samma adresser.

Permalänk
Medlem

@serdyllon
@jocke92

Det löste sig själv nu vid uppdatering av WordPress till senaste versionen.

Permalänk
Medlem
Skrivet av Svantesson666:

@serdyllon
@jocke92

Det löste sig själv nu vid uppdatering av WordPress till senaste versionen.

👍

Permalänk
Medlem

@serdyllon

Ny höst nytt problem. Ett som inte fanns förr men som tydligen finns nu. När folk gör en beställning får de och administratören ett mejl. Det står i mejlet vad personen och beställt samt artikelnummer på klädesplagget. Nu står det inte längre artikelnumret i kunden mejl, vilket tyvärr gör saker väldigt mycket besvärligare för många.

Ex på hur det ser ut.

Kund:
BYXA MED STRETCH
• Storlek: C42 1 514 kr

Administratör:
BYXA MED STRETCH (#716118118933)
• Storlek: C42 1 514 kr

Något behöver jag alltså lägga till i mallen för epost för kundmejlet men jag är inte tillräcklig kunnig för att förstå vad.

Mallarna ser ut som följer

Kund

<?php /** * Customer processing order email * * This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-processing-order.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see https://docs.woocommerce.com/document/template-structure/ * @package WooCommerce\Templates\Emails * @version 3.7.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } /* * @hooked WC_Emails::email_header() Output the email header */ do_action( 'woocommerce_email_header', $email_heading, $email ); ?> <?php /* translators: %s: Customer first name */ ?> <p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p> <?php /* translators: %s: Order number */ ?> <p><?php printf( esc_html__( 'Just to let you know — we\'ve received your order #%s, and it is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ); ?></p> <?php /* * @hooked WC_Emails::order_details() Shows the order details table. * @hooked WC_Structured_Data::generate_order_data() Generates structured data. * @hooked WC_Structured_Data::output_structured_data() Outputs structured data. * @since 2.5.0 */ do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::order_meta() Shows order meta data. */ do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::customer_details() Shows customer details * @hooked WC_Emails::email_address() Shows email address */ do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email ); /** * Show user-defined additional content - this is set in each email's settings. */ if ( $additional_content ) { echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) ); } /* * @hooked WC_Emails::email_footer() Output the email footer */ do_action( 'woocommerce_email_footer', $email );

Administratör

<?php /** * Admin new order email * * This template can be overridden by copying it to yourtheme/woocommerce/emails/admin-new-order.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see https://docs.woocommerce.com/document/template-structure/ * @package WooCommerce\Templates\Emails\HTML * @version 3.7.0 */ defined( 'ABSPATH' ) || exit; /* * @hooked WC_Emails::email_header() Output the email header */ do_action( 'woocommerce_email_header', $email_heading, $email ); ?> <?php /* translators: %s: Customer billing full name */ ?> <p><?php printf( esc_html__( 'You’ve received the following order from %s:', 'woocommerce' ), $order->get_formatted_billing_full_name() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p> <?php /* * @hooked WC_Emails::order_details() Shows the order details table. * @hooked WC_Structured_Data::generate_order_data() Generates structured data. * @hooked WC_Structured_Data::output_structured_data() Outputs structured data. * @since 2.5.0 */ do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::order_meta() Shows order meta data. */ do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::customer_details() Shows customer details * @hooked WC_Emails::email_address() Shows email address */ do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email ); /** * Show user-defined additional content - this is set in each email's settings. */ if ( $additional_content ) { echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) ); } /* * @hooked WC_Emails::email_footer() Output the email footer */ do_action( 'woocommerce_email_footer', $email );

Permalänk
Medlem
Skrivet av Svantesson666:

@serdyllon

Ny höst nytt problem. Ett som inte fanns förr men som tydligen finns nu. När folk gör en beställning får de och administratören ett mejl. Det står i mejlet vad personen och beställt samt artikelnummer på klädesplagget. Nu står det inte längre artikelnumret i kunden mejl, vilket tyvärr gör saker väldigt mycket besvärligare för många.

Ex på hur det ser ut.

Kund:
BYXA MED STRETCH
• Storlek: C42 1 514 kr

Administratör:
BYXA MED STRETCH (#716118118933)
• Storlek: C42 1 514 kr

Något behöver jag alltså lägga till i mallen för epost för kundmejlet men jag är inte tillräcklig kunnig för att förstå vad.

Jag tror faktiskt att SKU ingår i standardmallen för WooCommerce numera.

Så frågan är väl i så fall om du har ett tema som skriver över email-mallarna.

Om det finns sådana mallar bör de ligga i temats huvudmapp > woocommerce > emails

Du kan även dubbelkolla detta genom att växla över till ett standardtema temporärt och sedan skicka om ett ordermail via Beställningar > klicka på valfri order > välj "Skicka om nytt beställningsmeddelande" och klicka på pilen bredvid.

Tror det är bättre att kolla detta först innan man ger sig in med custom kod i functions.php. Ingår det i standarden är det ju bättre att ta bort eventuella mallar som överskriver WooCommerce default.

Permalänk
Medlem
Skrivet av serdyllon:

Jag tror faktiskt att SKU ingår i standardmallen för WooCommerce numera.

Så frågan är väl i så fall om du har ett tema som skriver över email-mallarna.

Om det finns sådana mallar bör de ligga i temats huvudmapp > woocommerce > emails

Du kan även dubbelkolla detta genom att växla över till ett standardtema temporärt och sedan skicka om ett ordermail via Beställningar > klicka på valfri order > välj "Skicka om nytt beställningsmeddelande" och klicka på pilen bredvid.

https://i.imgur.com/D6TfsKD.png

Tror det är bättre att kolla detta först innan man ger sig in med custom kod i functions.php. Ingår det i standarden är det ju bättre att ta bort eventuella mallar som överskriver WooCommerce default.

Åh grymt. Uppdaterade allting och gick över till att använda original storefront istället för ett child-theme. Hoppas det funkar nu. Min kollega Malin ska kolla om mejlet hon fick är med nummer imorgon. I så fall är det bara att gå över till storefront-child igen och importera email mallar från original theme antar jag?

Permalänk
Medlem
Skrivet av Svantesson666:

Åh grymt. Uppdaterade allting och gick över till att använda original storefront istället för ett child-theme. Hoppas det funkar nu. Min kollega Malin ska kolla om mejlet hon fick är med nummer imorgon. I så fall är det bara att gå över till storefront-child igen och importera email mallar från original theme antar jag?

Såvida du inte avser göra några ändringar kan du lika gärna radera alla e-postmallar från child-temat. Då behövs de ju ändå inte, utan du kan gott köra vidare med mallarna som ligger i huvudtemat.

Googlade lite på det och kunde inte få något entydigt svar på om SKU faktiskt ingår i mailen by default eller ej. Körde ett snabbt test i en gammal shop på en staging-sida och där fanns SKU med i mailen. Kunde inte hitta att det gjorts några ändringar i functions utöver att lägga till SKU i varukorgen (vilket inte borde påverka mailen alls).

Permalänk
Medlem
Skrivet av Svantesson666:

Åh grymt. Uppdaterade allting och gick över till att använda original storefront istället för ett child-theme. Hoppas det funkar nu. Min kollega Malin ska kolla om mejlet hon fick är med nummer imorgon. I så fall är det bara att gå över till storefront-child igen och importera email mallar från original theme antar jag?

Uppdatering:

Hittade felet. Jag hade både rätt och fel 😂

  1. Mailen om nya order som skickas till admin innehåller SKU som default.

  2. Mailen som skickas till kunderna innehåller inte SKU som default.

Vad du behöver göra för att lägga till SKU i alla mail är följande:

Kopiera filen email-order-details.php från /wp-content/plugins/woocommerce/templates/emails till ditt child-temas mapp: child-tema-mappen/woocommerce/emails

Editera sedan filen som du kopierade till child-temat på rad 52 (i nuvarande version, kan vara annorlunda i din):

'show_sku' => $sent_to_admin,

till

'show_sku' => true,

Spara sedan och ladda upp till servern, lägg en testorder till din egen e-post så skall du se att det bör fungera 👍

Permalänk
Medlem

@serdyllon
Tack men funka fan inte, det betyder att den använder en annan mall för mejl misstänker jag vid beställning. Ska se om jag kan klura ut vilken det kan vara.

Permalänk
Medlem

Det är mallen customer-processing-order.php som skickas vid en beställning till kunden. Kan jag ändra i denna i child-theme så den skickar med SKU?

<?php /** * Customer processing order email * * This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-processing-order.php. * * HOWEVER, on occasion WooCommerce will need to update template files and you * (the theme developer) will need to copy the new files to your theme to * maintain compatibility. We try to do this as little as possible, but it does * happen. When this occurs the version of the template file will be bumped and * the readme will list any important changes. * * @see https://docs.woocommerce.com/document/template-structure/ * @package WooCommerce\Templates\Emails * @version 3.7.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; } /* * @hooked WC_Emails::email_header() Output the email header */ do_action( 'woocommerce_email_header', $email_heading, $email ); ?> <?php /* translators: %s: Customer first name */ ?> <p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $order->get_billing_first_name() ) ); ?></p> <?php /* translators: %s: Order number */ ?> <p><?php printf( esc_html__( 'Just to let you know &mdash; we\'ve received your order #%s, and it is now being processed:', 'woocommerce' ), esc_html( $order->get_order_number() ) ); ?></p> <?php /* * @hooked WC_Emails::order_details() Shows the order details table. * @hooked WC_Structured_Data::generate_order_data() Generates structured data. * @hooked WC_Structured_Data::output_structured_data() Outputs structured data. * @since 2.5.0 */ do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::order_meta() Shows order meta data. */ do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email ); /* * @hooked WC_Emails::customer_details() Shows customer details * @hooked WC_Emails::email_address() Shows email address */ do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email ); /** * Show user-defined additional content - this is set in each email's settings. */ if ( $additional_content ) { echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) ); } /* * @hooked WC_Emails::email_footer() Output the email footer */ do_action( 'woocommerce_email_footer', $email );

Permalänk
Medlem

@serdyllon Tack vare att du än en gång hänvisade mig rätt hittade jag hur man skulle göra. Genom att lägga till detta till functions.php i child funkade det perfekt.

// Adds SKUs to WooCommerce order emails function w3p_add_sku_to_wc_emails( $args ) { $args['show_sku'] = true; return $args; } add_filter( 'woocommerce_email_order_items_args', 'w3p_add_sku_to_wc_emails' );

Permalänk
Medlem
Skrivet av Svantesson666:

@serdyllon Tack vare att du än en gång hänvisade mig rätt hittade jag hur man skulle göra. Genom att lägga till detta till functions.php i child funkade det perfekt.

// Adds SKUs to WooCommerce order emails function w3p_add_sku_to_wc_emails( $args ) { $args['show_sku'] = true; return $args; } add_filter( 'woocommerce_email_order_items_args', 'w3p_add_sku_to_wc_emails' );

Fint så 👍

Den funktionen gör samma sak, fast för alla mallar. Är dessutom framtidssäker i all sin enkelhet så du lär inte behöva ändra den koden med framtida uppdateringar.