WooCommerce এ একটি সম্পূর্ণ অর্ডারে একটি দ্বিতীয় ইমেল ঠিকানা যুক্ত করা [বন্ধ]


11

আমি এই প্রশ্ন জিজ্ঞাসা করার আগে, আমি জানি যে Woo পণ্যগুলি সম্পর্কে এখানে প্রশ্নগুলির উত্তর দেওয়ার ক্ষেত্রে একটি (বৈধ) দ্বিধা রয়েছে যেহেতু তাদের নিজস্ব সমর্থন রয়েছে এবং তাদের ব্যবহারকারীদের এটি ব্যবহার করতে উত্সাহিত করা উচিত। আমি একজন বেতন প্রদানকারীর ব্যবহারকারী কিন্তু তাদের প্রদত্ত সহায়তায় এটি সমাধান করতে পারিনি, এবং আমার প্রশ্নটি ডব্লিউপি-তে ক্লাসগুলি ওভাররাইড করার বিষয়ে তাই আমি আশা করি এটি সুষ্ঠু শুনানি পাবে।

আমার প্রশ্ন: যখন একটি সম্পূর্ণ অর্ডার ইমেলটি কোনও গ্রাহকের কাছে প্রেরণ করা হয়, তখন আমাকে এই ইমেলটি, ভারব্যাটিম এবং স্বয়ংক্রিয়ভাবে গ্রহণ করতে হবে ঠিক যেমন গ্রাহকের কাছে পাঠানো হয় ঠিক তেমন কোনও অন্য ফর্ম্যাট যেমন বিভিন্ন চালান পিডিএফ দ্বারা তৈরি করা হয়েছিল WooCommerce জন্য প্লাগইন। নিম্নলিখিত লাইনে পরিবর্তন করে আমি খুব সহজেই এটি সম্পাদন করতে পারি /woocommerce/classes/emails/class-wc-email-customer-completed-order.php:

$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );

পড়তে:

$this->send( $this->get_recipient(), $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );
$this->send( me@myemail.com, $this->get_subject(), $this->get_content(), $this->get_headers(), $this->get_attachments() );

তবে স্পষ্টতই এর মতো একটি হ্যাক কোনও আপগ্রেডকে টিকিয়ে রাখতে পারে না। আমার একটি শিশু থিম রয়েছে যা WooCommerce টেমপ্লেটগুলিকে ওভাররাইড করে। এমন কি কোনও সমতুল্য প্রক্রিয়া আছে যার দ্বারা আমি একটি শ্রেণিকে একইভাবে আবদ্ধ পদ্ধতিতে ওভাররাইড করতে পারি? অথবা গ্রাহক যখন এটি গ্রহণ করবেন তখনও এই ইমেলটি প্রাপ্ত করার জন্য আমার নির্দিষ্ট কাজটি সম্পাদনের জন্য আপনি কোনও বিকল্প পদ্ধতির (সমস্ত বিদায়ী ইমেলগুলিকে দ্বিতীয় ঠিকানায় বিসিসিতে সেট করার পাশাপাশি) প্রস্তাব দিতে পারেন?


আমি এর আগে এসএমটিপি সার্ভার হিসাবে জিমেইল / গুগল ব্যবহার করেছি এবং এটি আসলে প্রেরিত ফোল্ডারে অ্যালিল ইমেলগুলি রাখে ... (এটি আপনার ক্ষেত্রে যা মূল্যবান তা
হ'ল

উত্তর:


22

আসলে একটি ফিল্টার রয়েছে যা আপনি abstract-wc-email.php214 লাইনটি ব্যবহার করতে পারেন, দেখুন :

return apply_filters( 'woocommerce_email_recipient_' . $this->id, $this->recipient, $this->object );

আপনি নিম্নলিখিতগুলি আপনার ফাংশনগুলিতে রেখে দিতে পারেন ph

add_filter( 'woocommerce_email_recipient_customer_completed_order', 'your_email_recipient_filter_function', 10, 2);

function your_email_recipient_filter_function($recipient, $object) {
    $recipient = $recipient . ', me@myemail.com';
    return $recipient;
}

একমাত্র ত্রুটিটি হ'ল প্রাপক আপনার ঠিকানা এবং তার নিজের উভয়ই টু: ক্ষেত্রে দেখবেন।


বিকল্পভাবে, স্টিভের উত্তরের ভিত্তিতে আপনি woocommerce_email_headersফিল্টারটি ব্যবহার করতে পারেন । $ অবজেক্টটি আপনাকে পাস করা অর্ডার ইমেলটিতে কেবল এটি প্রয়োগ করতে দেয়:

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);

function mycustom_headers_filter_function( $headers, $object ) {
    if ($object == 'customer_completed_order') {
        $headers .= 'BCC: My name <my@email.com>' . "\r\n";
    }

    return $headers;
}

এটি খুব আশাব্যঞ্জক দেখাচ্ছে। আপনার কার্যকারিতাটির জন্য একটি প্লাগইন তৈরি করার পরামর্শ কি?
হাল্লে

উত্তর আপডেট!
ইবাউট

এটি নিখুঁতভাবে কাজ করে , আপনাকে অনেক ধন্যবাদ। এটি সত্যিই উপরে এবং অতিক্রম করেছে।
হ্যালে

"বিকল্পভাবে, স্টিভের উত্তরের ভিত্তিতে বিল্ডিং ..." এর নীচের কোডটি WC 2.3 এর সাথে কাজ করছে বলে মনে হচ্ছে না ... কোনও পরামর্শ?
drake035

কোডগুলির কোনওটি ডব্লিউসি 2.5.5 তে কাজ করছে না, আপনি কি জানেন যে তারা ফিল্টারটির নাম পরিবর্তন করেছে? ধন্যবাদ!
জয়পি

9

এবং আরও একটি ফিল্টার রয়েছে যা আপনাকে $ শিরোনাম ভেরিয়েবলটিতে অ্যাক্সেস দেবে যা আপনাকে আপনার ইমেলগুলি বিসিসি করার অনুমতি দিতে পারে যাতে আপনি নিজের ইমেলগুলির একটি কার্বন অনুলিপি পাবেন যা আপনার ক্লায়েন্টগুলিকে ওউকমারসে যায়। এটি আপনার ক্লায়েন্টগুলি ছাড়া আপনার ইমেল ঠিকানাটি দেখতে পাবে না উপরের কোডটির মতোই সহজ।

উপরের সমাধানটির মতো আপনিও নীচের কোডটি যুক্ত করবেন:

add_filter( 'woocommerce_email_headers', 'mycustom_headers_filter_function', 10, 2);

function mycustom_headers_filter_function($headers, $object) {
    $headers = array();
    $headers[] = 'Bcc: your name <me@myemail.com>';
    $headers[] = 'Content-Type: text/html';
    return $headers;
}

এই ফিল্টারটি সমস্ত ers শিরোলেখগুলিতে প্রযোজ্য এবং হার্ড কোডগুলি পাঠ্য / এইচটিএমএল হিসাবে প্রকার। নোট করুন যে আপনি বিষয়বস্তুর ধরণের ঘোষণায় '/ r / n' অন্তর্ভুক্ত করবেন না - এটি ডাব্লুপি_মেল () - এ একটি ত্রুটির কারণ হতে পারে - এটি হ'ল ওয়ার্ডকমার্স আপনার বার্তা প্রেরণে যা ব্যবহার করে।

আমি এই কোডটি ব্যবহার করছি তাই আমি যাচাই করতে পারি যে ওয়ার্ল্ডকোমার্স v2.0.14। পূর্ববর্তী সংস্করণগুলিতেও কাজ করা উচিত তবে ফিল্টারটি কতক্ষণ অন্তর্ভুক্ত করা হয়েছে তা নিশ্চিত হওয়া উচিত নয়।


কেন / আর / এন ব্যবহার করবেন না? আমি মনে করি যে ত্রুটিটি কেবল তখনই উপস্থিত হয় যখন আপনি শিরোনামের অ্যারেতে / r / n যুক্ত করবেন। আপনার উদাহরণ আসলে সামগ্রী সেটিংস ওভাররাইট করে, যা আপনি পুনরায় ব্যবহার করতে পারেন।
ইবাউট

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