উকমার্স প্রোডাক্ট মেটাবক্স এবং মেটাডাটা

ওয়ার্ডপ্রেসে মেটাবক্স এ্যাড করা, মেটাডাটা সেভ করা, ডিলিট করা এসবের সাথে কমবেশি আমরা সবাই পরিচিত। প্রাচীনকালে আমরা add_meta_box দিয়ে কাস্টম মেটাবক্স এ্যাড করতাম। কিন্তু মহান সব ডেভেলপারদের কল্যানে আমাদের আর কষ্ট করে মেটাবক্স বানানো আর মেটাডাটা সেভ করার মত লো লেভেলের কাজ গুলি করতে হয়না। মেটাবক্স বানানোর চমৎকার সব ফ্রেমওয়ার্ক ব্যবহার করে আমরা সহজেই প্রয়োজনীয় কাজ সেরে ফেলতে পারি।

কিন্তু আজকে আমরা কোন মেটাবক্স ফের্মওয়ার্ক শিখবো না। কারণ উকমার্সে মেটাবক্স আর মেটাডাটা নিয়ে কাজ করাটা বেশ সহজ এবং এর জন্য সাধারণত কোন ফ্রেমওয়ার্কের প্রয়োজন হয়না। উকমার্সের নিজস্ব সুন্দর একটি মেটাবক্স সিস্টেম আছে। যেখানে মেটাফিল্ড গুলি ট্যাব আকারে গ্রুপ করে সাজানো থাকে। আমরা সহজেই নির্দিষ্ট এ্যাকশন হুক ব্যবহার করে সেসব ট্যাবে আমাদের প্রয়োজনীয় মেটাফিল্ড যুক্ত করতে পারি। আবার চাইলে সম্পূর্ণ নতুন একটি ট্যাবও বানিয়ে ফেলতে পারি। আজকে আমরা Awesome Tab নামে নতুন একটি ট্যাব বানিয়ে সেখানে মেটাফিল্ড যুক্ত করা শিখব। এখানে ব্যবহৃত সকল কোড আমরা functions.php যুক্ত করে কাজ করব।

ট্যাব আকারে সাজানো উকমার্স মেটাবক্স

Awesome Tab এ্যাড করা:

ট্যাব এ্যাড করার জন্য woocommerce_product_data_tabs ফিল্টার হুকে নতুন ট্যাবের কনফিগারেশন এ্যারে বর্তমান ট্যাবগুলির কনফিগারেশনের সাথে মার্জ করে পাঠাতে হয়। ফিল্টার হুকটি শুধুমাত্র একটি আর্গুমেন্ট $tabs একসেপ্ট করে, যা হল বর্তমান ট্যাবগুলির কনফিগারেশন এ্যারে। ট্যাবের কনফিগারেশন হিসেবে নিচের ডাটাগুলি পাস করতে হয়ঃ

  • label – ট্যাবের লেবেল, আমাদের ট্যাবের ক্ষেত্রে যা Awesome Tab
  • target – ট্যাবের টার্গেট হিসেবে ট্যাব প্যানেলের আইডি পাস করতে হয়। আমাদের Awesome Tab এর ক্ষেত্রে যা awesome-tab
  • class – ট্যাবের জন্য এডিশনাল কোন ক্লাস দিতে চাইলে এ্যারে ইলিমেন্ট হিসেব দিতে হয়।
  • priority – প্রায়োরিটির উপর নির্ভর করবে ট্যাবের প্লেসমেন্ট বা ট্যাবটি কোথায় দেখাবে। বেশি হলে নিচের দিকে আর কম হলে উপরের দিকে দেখাবে।

functions.php তে কোড গুলি এ্যাড করার পর এ্যাড কিংবা এডিট প্রোডাক্ট পেজে গেলে আমরা নিচের মত Awesome Tab নামে নতুন একটি ফিল্ড ছাড়া ট্যাব দেখতে পাবো।

Awesome Tab এ ফিল্ড এ্যাড করা:

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

functions.php তে কোড গুলি এ্যাড করার পর এ্যাড কিংবা এডিট প্রোডাক্ট পেজে গেলে Awesome Tab দুটি টেক্সট ফিল্ড দেখতে পাবো।

Awesome Tab এর ডাটা সেভ করা:

ট্যাবের ডাটা সেভ করার করা জন্য woocommerce_admin_process_product_object এ্যাকশন হুকে ডাটা সেভ করার ফাংশনালিটি লিখতে হবে। এই হুকটি Product Object $product আর্গুমেন্ট হিসেবে একসেপ্ট করে। নিচের কোডে সেভ করার ফাংশনালিটি লেখা আছে।

সবগুলি কোড একসাথে পেতে চাইলে ক্লিক করুন

— ধন্যবাদ 🙂