অর্ডার মেল নিশ্চিতকরণ 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.