Your question should be specific to WordPress. Generic PHP/JS/SQL/HTML/CSS questions might be better asked at Stack Overflow or another appropriate Stack Exchange network site. Third-party plugins and themes are off-topic for this site; they are better asked about at their developers' support routes.
Closed 3 years ago.
Improve this questionI'm using the version 3.4.7 of WooCommerce and configuring the e-mails, I stare with a strange thing: the templates didn't appear the css. I experienced this in all of my sites, this is a test site that is installed WordPress and WooCommerce and nothing more.
Here is my config:
The current result is:
I expect something like this:
I don't know what I'm doing wrong. Thanks for help.
Edit: The HTML of my email template: Note: i'm not using any custom template of my theme, it's storefront theme, i tested with twenty-seventeen and gives the same error.
PHP Version 7.3.1
Closed. This question is off-topic. It is not currently accepting answers.Your question should be specific to WordPress. Generic PHP/JS/SQL/HTML/CSS questions might be better asked at Stack Overflow or another appropriate Stack Exchange network site. Third-party plugins and themes are off-topic for this site; they are better asked about at their developers' support routes.
Closed 3 years ago.
Improve this questionI'm using the version 3.4.7 of WooCommerce and configuring the e-mails, I stare with a strange thing: the templates didn't appear the css. I experienced this in all of my sites, this is a test site that is installed WordPress and WooCommerce and nothing more.
Here is my config:
The current result is:
I expect something like this:
I don't know what I'm doing wrong. Thanks for help.
Edit: The HTML of my email template: https://pastebin/41TY84NS Note: i'm not using any custom template of my theme, it's storefront theme, i tested with twenty-seventeen and gives the same error.
PHP Version 7.3.1
Share Improve this question edited Jun 11, 2019 at 13:01 Lucas Vendramini asked Jun 10, 2019 at 21:09 Lucas VendraminiLucas Vendramini 3032 silver badges11 bronze badges 7 | Show 2 more comments1 Answer
Reset to default 1Well, I tested a lot of WooCommerce versions (3.3.x, 3.4.x and 3.5.x) using WP Rollback and I believe that was a error in e-mail templates that was fixed in version 3.5.2. I didn't found nothing in the changelog about that: https://raw.githubusercontent/woocommerce/woocommerce/master/CHANGELOG.txt
Here is the template in WooCommerce in version 3.5.2:
I have to investigate more deeply to know what is is, but the versions below 3.5.2 is throwing this error:
[11-Jun-2019 13:46:09 UTC] PHP Warning: preg_replace(): Compilation failed: invalid range in character class at offset 39 in C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php on line 1504
[11-Jun-2019 13:46:09 UTC] PHP Stack trace:
[11-Jun-2019 13:46:09 UTC] PHP 1. {main}() C:\xampp\htdocs\market\wp-admin\index.php:0
[11-Jun-2019 13:46:09 UTC] PHP 2. require_once() C:\xampp\htdocs\market\wp-admin\index.php:10
[11-Jun-2019 13:46:09 UTC] PHP 3. do_action() C:\xampp\htdocs\market\wp-admin\admin.php:156
[11-Jun-2019 13:46:09 UTC] PHP 4. WP_Hook->do_action() C:\xampp\htdocs\market\wp-includes\plugin.php:453
[11-Jun-2019 13:46:09 UTC] PHP 5. WP_Hook->apply_filters() C:\xampp\htdocs\market\wp-includes\class-wp-hook.php:310
[11-Jun-2019 13:46:09 UTC] PHP 6. WC_Admin->preview_emails() C:\xampp\htdocs\market\wp-includes\class-wp-hook.php:286
[11-Jun-2019 13:46:09 UTC] PHP 7. WC_Email->style_inline() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\admin\class-wc-admin.php:210
[11-Jun-2019 13:46:09 UTC] PHP 8. Emogrifier->emogrify() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\emails\class-wc-email.php:530
[11-Jun-2019 13:46:09 UTC] PHP 9. Emogrifier->createAndProcessXmlDocument() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php:291
[11-Jun-2019 13:46:09 UTC] PHP 10. Emogrifier->process() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php:327
[11-Jun-2019 13:46:09 UTC] PHP 11. Emogrifier->translateCssToXpath() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php:369
[11-Jun-2019 13:46:09 UTC] PHP 12. Emogrifier->translateCssToXpathPass() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php:1448
[11-Jun-2019 13:46:09 UTC] PHP 13. Emogrifier->translateCssToXpathPassWithMatchClassAttributesCallback() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php:1472
[11-Jun-2019 13:46:09 UTC] PHP 14. preg_replace() C:\xampp\htdocs\market\wp-content\plugins\woocommerce\includes\libraries\class-emogrifier.php:1504
Thanks for @SallyCJ for patience and support!
Workaround:
I got the class that is working from 3.5.2 and used that class in my theme. So doing this you will be able to fix the error in 3.5.1 and lower versions of WooCommerce:
//3.4.7
add_filter( 'woocommerce_email_classes', function($emails){
require_once get_template_directory() . '/class-emogrifier.php';
return $emails;
});
//3.5.1
add_filter( 'woocommerce_email_styles', function($style){
require_once get_template_directory() . '/class-emogrifier.php';
return $style;
});
Class Emogrifier v2.0.0:
https://pastebin/U0eAFXpx
style="background-color: #f7f7f7; margin: 0; ..."
. – Sally CJ Commented Jun 11, 2019 at 1:16C:\xampp\htdocs\market\dom-check.php:1:boolean true
. As I said in description, I tested in 2 of my sites and gives the same error. My theory is that WooCommerce 3.4.7 maybe is having this problem with email templates. Don't know, I will test it up. – Lucas Vendramini Commented Jun 11, 2019 at 12:56