عرض سلام و ادب و احترام خدمت همهی دوستان عزیز. امیدوارم که حالتون عالیه عالی باشه. ما هم عالی عالی هستیم. سید محمد حسن جعفری هستم در خدمت شما، توی این آموزش میخوایم در رابطه با این صحبت کنیم که چطور ما میتونیم نام محصولاتی که سفارش شده توسط کاربرها را توی صفحهی سفارش ووکامرس نمایش بدیم و این قابلیت اضافه بکنیم.
حالت پیشفرض ووکامرس
به طور خود به خود توی صفحهی سفارشهای ووکامرس ما این قابلیت را نداریم که بیایم آیتمها را نمایش بدهیم و اگر بخواهیم این کار را انجام بدیم دو راه بیشتر نداریم:
1) یا باید روی دکمه نمایش کلیک بکنیم.
2) یا باید روی این شماره کلیک بکنیم. اگر روی شماره سفارش کلیک بکنیم اطلاعات سفارش و جزییات سفارش را به ما نمایش میده که مثلا در این سفارش، گلدان بتنی سفارش داده شده.
افزودن قابلیت نمایش نام محصولات
حالا میخوایم قابلیتی اضافه بکنیم که به نوعی بیاد محصولاتی که وجود دارد را را در یک ستون جدا نمایش بدهیم. این کار باعث بهبود تجربهی کاربری سایتتون میشود؛ چرا که کاربر خیلی راحتتر میتواند دسترسی داشته باشد به محصولاتی که سفارش داده است.
برای افزودن قابلیت نمایش نام محصولات در صفحه سفارش ووکامرس؛ لازم که از یک تیکه کدی به زبان برنامه نویسی PHP استفاده کنیم که این کد PHP را ما باید در فایل functions.php قالب فعالمان در هاست پیست بکنیم.
در ابتدا شما کافیه که وارد کنترل پنل هاست خود بشوید. سپس از طریق مسیر زیر وارد فایل funcions.php قالب را پیدا کنید.
Public_html -> wp-content -> themes -> flatsome-child -> function.php
نکته: چون در این وب سایت قالب فرزند فلت سام فعال بود؛ ما وارد پوشه فرزند شدیم، شما باید وارد پوشه قالب فعال خود شوید!
سپس فایل functions.php را پیدا میکنیم. کلیک راست کرده و گزینه ویرایش (edit) را میزنیم؛ سپس تیکه کد زیر را در انتهای فایل قرار بدهید. سیو کنید و نتیجه نهایی را مشاهده کنید.
// کد نمایش محصولات در صفحه سفارشات ووکامرس
function ts_get_product_name_from_order_item($order_item) {
$product_id = $order_item['product_id'];
$product = wc_get_product($product_id);
if ($product) {
return $product->get_name();
} else {
return '';
}
}
add_filter('woocommerce_my_account_my_orders_columns', function($columns) {
$new_columns = array();
foreach ($columns as $key => $column) {
if ($key === 'order-status') {
$new_columns['product_name'] = __('آیتم های سفارش', 'woocommerce');
}
$new_columns[$key] = $column;
}
return $new_columns;
});
add_action('woocommerce_my_account_my_orders_column_product_name', function($order_id) {
$order = wc_get_order($order_id);
$order_items = $order->get_items();
foreach ($order_items as $order_item) {
echo ts_get_product_name_from_order_item($order_item);
echo '<br>';
}
});