অর্ডার মেল নিশ্চিতকরণ DOMXPath :: ক্যোয়ারী () ত্রুটি উত্পন্ন করে


12

ক্রম স্থানে ইমেলটিতে নিম্নলিখিত ত্রুটি রয়েছে এবং এটি সঠিকভাবে প্রদর্শন করে না

CSS Inline Error: Warning: DOMXPath::query(): Invalid expression in .../vendor/pelago/emogrifier/Classes/Emogrifier.php on line 269 

আমি কিভাবে এটা ঠিক করব?


এই ইস্যুতে কোনও আপডেট
— জর্ডি এস চেম্পারথি

আমিও একই সমস্যার মুখোমুখি
— আছি

উত্তর:


5

এটি ইমোগ্রিফায়ার মডিউলটির বাগ হতে পারে ।

এটি require-devঅংশে রাখুন composer.json:

"pelago/emogrifier": "1.0.0 as 0.1.1"

বা বিকাশ সংস্করণ পছন্দ করুন:

"pelago/emogrifier": "dev-master as 0.1.1"

একটি বিজ্ঞপ্তি রয়েছে: স্থির সামগ্রী মোতায়েনের প্রক্রিয়া করার সময় এই সমস্যাটি ঘটেছিল বলে মনে হয়।

হালনাগাদ:

আমাদের এক নজর দেওয়া উচিত:

বিক্রেতা / Magento / থিম-ফ্রন্টএন্ড-ফাঁকা / ওয়েব / সিএসএস / email.less

@import 'source/lib/_lib.less'; // Global lib
@import 'source/lib/variables/_email.less'; // Global email variables
@import 'source/_theme.less'; // Global variables override
@import 'source/_variables.less'; // Local theme variables
@import 'source/_email-variables.less'; // Theme variables for emails

ম্যাজেন্টো ইমেলটি কিছু কম ফাইল আমদানি করবে । সুতরাং, আমরা যদি এই ফাইলগুলিতে কিছু অসমর্থিত নির্বাচনকারীকে যুক্ত করি তবে এটি এই সমস্যার কারণ হতে পারে।

বিক্রেতা / Magento / থিম-ফ্রন্টএন্ড-ফাঁকা / ওয়েব / CSS / উৎসে / _email-base.less

Unsupported selectors (examples in parenthesis):
      * first-child (div:first-child)
      * last-child (div:last-child)
      * nth-child (div:nth-child(3n+1))
      * universal (*)
      * pseudo (a:hover, a:active, a:focus, span:before, span:after, etc)

উদাহরণস্বরূপ, আমাদের কাস্টম থিমে আমরা কিছু অসমর্থিত নির্বাচক যুক্ত করি:

অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / VendorTheme / ডিফল্ট / ওয়েব / CSS / উৎসে / _theme.less

...
#customer-service-menu li.item:nth-child(2) {position: absolute;}
...

এই সমস্যা আবার ঘটবে।

সমাধান:

আমাদের একটি নতুন ফোল্ডার তৈরি করা উচিত যাতে আমাদের ইমেল শৈলীর জন্য কম ফাইল থাকতে পারে । এবং, এই ফাইলগুলি কেবল ইমেলের জন্য।

অ্যাপ্লিকেশন / ডিজাইন / ফ্রন্টএন্ড / VendorTheme / ডিফল্ট / ওয়েব / সিএসএস / email.less

@import 'source/lib/email/stand/_lib.less'; // Global lib
@import 'source/lib/email/stand/variables/_email.less'; // Global email variables

[অপ্রত্যাশিত ভ্যালুএক্সেপশন] ০.১.১ হিসাবে সংস্করণ সীমাবদ্ধতা পার্স করা যায়নি: "0.1.1" হিসাবে অবৈধ সংস্করণ স্ট্রিং
— প্রতীক মেহতা

2

আমি সবেমাত্র অনুরূপ সমস্যা থেকে এসেছি। আমি আশা করি এই পরিবর্তনগুলি আপনাকে সহায়তা করতে পারে।

Magento 2 এর একটি সমাধান খুঁজে পেয়েছি

ফাইল তৈরি

/web/css/email.less

এবং

/web/css/email-inline.less

আমার কাস্টম থিম এবং এ থেকে লিখিত সামগ্রী যুক্ত

/vendor/magento/theme-frontend-blank/web/css/email.less

এবং

যথাযথভাবে

নীচে নোট করুন

তবে প্রতিটি "@Import 'উত্স / _theme.less' লাইন সহ; মন্তব্য করা (বা সরানো)


এটি করে আপনি থিম সিএসএসকে ইমেল সিএসএস থেকে ঠিক আলাদা করছেন?
— রোহিত কৌশিক

এটি করে আপনি থিম সিএসএসকে ইমেল সিএসএস থেকে ঠিক আলাদা করছেন? ==> হ্যাঁ, আমি আশা করি এই সমাধানটি আপনার পক্ষে সহায়ক
— নিকুঞ্জ পঞ্চাল

1

ম্যাজেন্টো ২.২.২ ব্যবহার করে এবং একই ত্রুটিটি অনুভব করে এবং এটিকে এটি ঠিক করেছেন:

"pelago/emogrifier": "2.0.0 as 1.2.0" composer.json এ যেমন প্রয়োজন তেমন
composer update pelago/emogifier && magento setup:upgrade


-1

এখন আমি সমাধান পেয়েছি
/var/www/html/vendor/pelago/emogrifier/Class/Emogrifier.php
লাইন 595, নীচের ফাংশনটি সন্ধান করুন এবং প্রতিস্থাপন করুন

private function splitCssAndMediaQuery($css)
    {
        $media = '';

        $css = preg_replace_callback(
            '#@media\\s+(?:only\\s)?(?:[\\s{\\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU',
            function ($matches) use (&$media) {
                $media .= $matches[0];
            },
            $css
        );

        // filter the CSS
        $search = array(
            // get rid of css comment code
            '/\\/\\*.*\\*\\//sU',
            // strip out any import directives
            '/^\\s*@import\\s[^;]+;/misU',
            // strip remains media enclosures
            '/^\\s*@media\\s[^{]+{(.*)}\\s*}\\s/misU',          
        );

        $replace = array(
            '',
            '',
            '',         
        );

প্রতিস্থাপন করা

private function splitCssAndMediaQuery($css)
    {
        $media = '';

        $css = preg_replace_callback(
            '#@media\\s+(?:only\\s)?(?:[\\s{\\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU',
            function ($matches) use (&$media) {
                $media .= $matches[0];
            },
            $css
        );

        // filter the CSS
        $search = array(
            // get rid of css comment code
            '/\\/\\*.*\\*\\//sU',
            // strip out any import directives
            '/^\\s*@import\\s[^;]+;/misU',
            // strip remains media enclosures
            '/^\\s*@media\\s[^{]+{(.*)}\\s*}\\s/misU',
            '/^\\s*@-?[A-Za-z-]+\\s[^{]+{(.*)}\\s*}\\s/misU',
        );

        $replace = array(
            '',
            '',
            '',
            '',
        );

এটি কাজ করছে না
— শীনু

ফাইলগুলিতে সম্পাদনা কোনও সমাধান নয় তাই দয়া করে আপনার উত্তরগুলি এখান থেকে সরান
— রোহিত কৌশিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.