ویدیو

اضافه کردن کد رهگیری پست به وب‌سایت‌های وردپرسی

در این آموزش، با استفاده از دو قطعه کد سبک، امکان ثبت کد رهگیری در مدیریت سفارش ووکامرس و نمایش آن در جزئیات سفارش مشتری را اضافه می‌کنیم.

آموزشیمحمد فراشی1405/05/247 دقیقه مطالعه210 بازدید

اگر محصولات فیزیکی را با ووکامرس می‌فروشید، بعد از ارسال سفارش باید راه ساده‌ای برای ارائه کد رهگیری مرسوله به مشتری داشته باشید. یکی از روش‌ها نصب افزونه‌های مخصوص رهگیری سفارش است؛ اما برای چنین قابلیت ساده‌ای همیشه نیازی به نصب یک افزونه جدید نداریم.

کد PHP و CSS را از طریق افزونه WPCode به سایت اضافه می‌کنیم؛ بنابراین نیازی به ویرایش مستقیم فایل functions.php قالب ندارید.

در ویدیوی ابتدای این آموزش، مراحل انجام کار و نحوه استفاده از کدها به‌صورت عملی توضیح داده شده است. اگر می‌خواهید سریع‌تر این قابلیت را پیاده‌سازی کنید، ابتدا ویدیو را مشاهده کنید و سپس کدهای زیر را در سایت قرار دهید.

کد PHP افزودن کد رهگیری به ووکامرس

ابتدا باید قابلیت اصلی را ایجاد کنیم. کد زیر یک فیلد «کد رهگیری مرسوله» به صفحه مدیریت سفارش اضافه می‌کند و پس از ثبت کد، آن را در جزئیات سفارش مشتری نمایش می‌دهد.

در WPCode یک PHP Snippet جدید ایجاد کنید و کد زیر را در آن قرار دهید:

Code
add_action( 'add_meta_boxes', function() {
if ( ! class_exists( 'WooCommerce' ) ) return;
$screen = 'shop_order';
if (
class_exists( '\Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController' ) &&
wc_get_container()->get(
\Automattic\WooCommerce\Internal\DataStores\Orders\CustomOrdersTableController::class
)->custom_orders_table_usage_is_enabled()
) {
$screen = wc_get_page_screen_id( 'shop-order' );
}
add_meta_box( 'patris_tracking', 'اطلاعات ارسال سفارش', function( $post_or_order ) {
$order = $post_or_order instanceof WP_Post ? wc_get_order( $post_or_order->ID ) : $post_or_order;
if ( ! $order ) return;
wp_nonce_field( 'patris_tracking_save', 'patris_tracking_nonce' );
?>
<label for="patris_tracking_code"><strong>کد رهگیری مرسوله</strong></label>
<input
type="text"
id="patris_tracking_code"
name="patris_tracking_code"
value="<?php echo esc_attr( $order->get_meta( '_patris_tracking_code' ) ); ?>"
style="width:100%;margin-top:8px;direction:ltr;text-align:left;"
>
<?php
}, $screen, 'side', 'high' );
} );
add_action( 'woocommerce_process_shop_order_meta', function( $order_id, $order ) {
if (
empty( $_POST['patris_tracking_nonce'] ) ||
! wp_verify_nonce(
sanitize_text_field( wp_unslash( $_POST['patris_tracking_nonce'] ) ),
'patris_tracking_save'
) ||
! current_user_can( 'edit_shop_order', $order_id )
) return;
$order = $order instanceof WC_Order ? $order : wc_get_order( $order_id );
if ( ! $order ) return;
$code = isset( $_POST['patris_tracking_code'] )
? sanitize_text_field( wp_unslash( $_POST['patris_tracking_code'] ) )
: '';
$code
? $order->update_meta_data( '_patris_tracking_code', $code )
: $order->delete_meta_data( '_patris_tracking_code' );
$order->save();
}, 10, 2 );
add_action( 'woocommerce_order_details_after_order_table', function( $order ) {
if ( ! $order instanceof WC_Order ) return;
$code = $order->get_meta( '_patris_tracking_code' );
if ( ! $code ) return;
?>
<div class="patris-tracking-box">
<div class="patris-tracking-title">
رهگیری مرسوله
</div>
<div class="patris-tracking-description">
سفارش شما ارسال شده است. برای پیگیری وضعیت مرسوله از کد زیر استفاده کنید.
</div>
<div class="patris-tracking-code">
<span>کد رهگیری:</span>
<strong dir="ltr"><?php echo esc_html( $code ); ?></strong>
</div>
<a
class="patris-tracking-button"
href="<?php echo esc_url( 'https://tracking.post.ir/?id=' . rawurlencode( $code ) ); ?>"
target="_blank"
rel="noopener noreferrer"
>
پیگیری مرسوله
</a>
</div>
<?php
} );


کد CSS استایل کد رهگیری ووکامرس

برای اینکه بخش رهگیری سفارش در حساب کاربری ظاهر مرتب و مشخصی داشته باشد، یک CSS Snippet دیگر در WPCode ایجاد کنید و استایل زیر را قرار دهید:

Code
.patris-tracking-box {
margin: 24px 0;
padding: 22px;
background: #fff;
border: 1px solid #e8eaf0;
border-radius: 14px;
}

.patris-tracking-title {
margin-bottom: 8px;
font-size: 18px;
font-weight: 700;
color: #222;
}

.patris-tracking-description {
margin-bottom: 16px;
font-size: 14px;
line-height: 1.9;
color: #666;
}

.patris-tracking-code {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 16px;
padding: 12px 14px;
background: #f6f7fb;
border-radius: 9px;
}

.patris-tracking-code strong {
direction: ltr;
color: #435ECA;
}

.patris-tracking-button {
display: inline-block;
padding: 10px 20px;
background: #435ECA;
color: #fff !important;
border-radius: 8px;
text-decoration: none !important;
transition: .2s;
}

.patris-tracking-button:hover {
opacity: .9;
}


این کد دقیقاً چه کاری انجام می‌دهد؟

بعد از فعال‌کردن Snippetها، وارد ووکامرس ← سفارش‌ها شوید و یکی از سفارش‌ها را باز کنید.در صفحه ویرایش سفارش، بخش جدیدی با عنوان «اطلاعات ارسال سفارش» مشاهده خواهید کرد. در این قسمت می‌توانید کد رهگیری مرسوله را وارد و سفارش را ذخیره کنید. کد رهگیری در اطلاعات همان سفارش ذخیره می‌شود و اگر فروشگاه شما از HPOS ووکامرس استفاده کند نیز ساختار کد برای صفحه سفارش‌های HPOS در نظر گرفته شده است.

از طرف دیگر، اگر برای سفارشی هنوز کد رهگیری ثبت نشده باشد، باکس رهگیری به مشتری نمایش داده نمی‌شود.

کد رهگیری در حساب کاربری مشتری چگونه نمایش داده می‌شود؟

پس از ثبت کد، مشتری می‌تواند وارد حساب کاربری خود شود و جزئیات سفارش را مشاهده کند.

در پایین اطلاعات سفارش، بخش «رهگیری مرسوله» نمایش داده می‌شود که شامل توضیح وضعیت ارسال، کد رهگیری و دکمه پیگیری مرسوله است.

بنابراین مشتری مجبور نیست برای دریافت کد رهگیری با پشتیبانی فروشگاه تماس بگیرد یا پیام ارسال کند.

این موضوع مخصوصاً برای فروشگاه‌هایی که روزانه تعداد زیادی سفارش پستی دارند می‌تواند فرایند پشتیبانی پس از خرید را ساده‌تر کند.

چرا برای این کار از WPCode استفاده می‌کنیم؟

برای اضافه‌کردن قابلیت‌های کوچک به وردپرس، یکی از روش‌های رایج ویرایش فایل functions.php است. این روش در شرایط مناسب قابل استفاده است، اما برای کاربران عادی مدیریت Snippetها از طریق WPCode ساده‌تر است.

در این روش کد PHP مربوط به قابلیت رهگیری از CSS مربوط به ظاهر آن جدا می‌شود. در نتیجه اگر بعداً بخواهید رنگ، فاصله‌ها، اندازه نوشته یا ظاهر دکمه را تغییر دهید، نیازی نیست منطق PHP سیستم را ویرایش کنید.

همچنین مدیریت و غیرفعال‌کردن Snippet از داخل پیشخوان وردپرس ساده‌تر خواهد بود.

آیا برای افزودن کد رهگیری ووکامرس به افزونه جداگانه نیاز داریم؟

اگر فقط می‌خواهید مدیر فروشگاه یک کد رهگیری پستی برای سفارش ثبت کند و مشتری آن را در جزئیات سفارش ببیند، همین راهکار می‌تواند کافی باشد.

اما فروشگاه‌های بزرگ‌تر ممکن است امکانات بیشتری نیاز داشته باشند؛ برای مثال اتصال به چند شرکت حمل‌ونقل، ارسال خودکار پیامک، ثبت چند مرسوله برای یک سفارش، API شرکت حمل‌ونقل یا تغییر خودکار وضعیت سفارش.
در چنین شرایطی استفاده از یک سیستم تخصصی حمل‌ونقل یا افزونه کامل‌تر انتخاب منطقی‌تری است.

مزیت اضافه کردن کد رهگیری به سفارش‌های ووکامرس چیست؟

یکی از سؤالات متداول مشتری بعد از خرید این است:

«سفارشم کجاست؟»

اگر مشتری بتواند کد رهگیری را مستقیماً از صفحه سفارش مشاهده کند، یک مرحله از ارتباط با پشتیبانی حذف می‌شود.

این قابلیت ساده می‌تواند چند مزیت داشته باشد:

  • دسترسی سریع‌تر مشتری به اطلاعات مرسوله
  • کاهش پیام‌ها و تماس‌های مربوط به پیگیری سفارش
  • منظم‌تر شدن فرایند ارسال فروشگاه
  • نگهداری کد رهگیری در اطلاعات همان سفارش
  • تجربه بهتر مشتری پس از خرید

نکات مهم قبل از استفاده از کد

قبل از اجرای کد روی فروشگاه اصلی، بهتر است ابتدا از سایت بکاپ تهیه کنید و در صورت امکان Snippet را روی محیط آزمایشی بررسی کنید.
همچنین PHP Snippet را فقط برای بخش PHP و CSS Snippet را برای استایل استفاده کنید. نیازی نیست کد CSS را داخل PHP قرار دهید.
اگر سایت از سیستم کش استفاده می‌کند و تغییرات ظاهری را بلافاصله مشاهده نکردید، کش سایت و مرورگر را نیز پاک کنید.

آیا این روش با HPOS ووکامرس سازگار است؟

در کد PHP، وضعیت استفاده فروشگاه از High-Performance Order Storage یا HPOS بررسی شده و در صورت فعال بودن آن، متاباکس به صفحه سفارش مربوط به ساختار جدید ووکامرس اضافه می‌شود.
همچنین اطلاعات کد رهگیری از طریق شیء سفارش ووکامرس و متدهای مربوط به WC_Order خوانده و ذخیره می‌شود.این موضوع بهتر از وابسته‌کردن مستقیم قابلیت به ساختار قدیمی نوشته‌های وردپرس است.

سوالات متداول

چگونه کد رهگیری را به ووکامرس اضافه کنیم؟

پس از اضافه‌کردن PHP Snippet این آموزش، یک فیلد کد رهگیری به صفحه مدیریت سفارش اضافه می‌شود. مدیر فروشگاه کد مرسوله را وارد می‌کند و پس از ذخیره سفارش، اطلاعات رهگیری در صفحه جزئیات سفارش مشتری قابل مشاهده خواهد بود.

آیا این روش نیاز به ویرایش functions.php دارد؟

خیر. در این آموزش کدها از طریق WPCode اضافه می‌شوند و نیازی به ویرایش مستقیم فایل functions.php قالب نیست.

اگر کد رهگیری وارد نکنیم چه اتفاقی می‌افتد؟

بخش رهگیری برای آن سفارش به مشتری نمایش داده نمی‌شود. پس فقط سفارش‌هایی که واقعاً دارای کد رهگیری هستند این قسمت را خواهند داشت.

آیا می‌توان ظاهر بخش رهگیری را تغییر داد؟

بله. ظاهر این قسمت توسط CSS کنترل می‌شود. می‌توانید رنگ دکمه، پس‌زمینه، Border، اندازه نوشته‌ها و سایر جزئیات را بدون تغییر PHP شخصی‌سازی کنید.

آیا می‌توان لینک رهگیری را تغییر داد؟

بله. آدرس سامانه رهگیری در PHP مشخص شده است و در صورت استفاده از سرویس حمل‌ونقل دیگری می‌توان منطق لینک رهگیری را متناسب با آن سرویس تغییر داد.

جمع‌بندی

برای افزودن کد رهگیری مرسوله به ووکامرس لزوماً نیازی نیست یک افزونه کامل حمل‌ونقل به فروشگاه اضافه کنید.در این آموزش با یک PHP Snippet قابلیت ثبت و نمایش کد رهگیری را ایجاد کردیم و استایل آن را نیز به‌صورت جداگانه با CSS کنترل کردیم.پس از پیاده‌سازی، مدیر فروشگاه کد مرسوله را در همان صفحه سفارش ثبت می‌کند و مشتری نیز می‌تواند آن را از بخش جزئیات سفارش حساب کاربری خود مشاهده کند.این روش برای فروشگاه‌هایی مناسب است که به یک سیستم ساده، سبک و قابل شخصی‌سازی برای نمایش کد رهگیری سفارش ووکامرس نیاز دارند.

# طراحی سایت# فروشگاه اینترنتی# کسب‌وکار آنلاین
تصویر محمد فراشی
نویسنده مقالهمحمد فراشی

بیش از 7 سال سابقه در زمینه برنامه‌نویس موبایل و طراحی سایت، همچنین به عنوان مدرس دوره‌های آموزشی در زمینه برنامه‌نویسی و طراحی وب، تجربه‌ام را با علاقه‌مندان به اشتراک می‌گذارم.

همه مقاله‌ها
گفتگو

دیدگاه‌ها

هنوز دیدگاهی ثبت نشده است. اولین نفر باشید که نظرش را می‌نویسد.

دیدگاه خود را بنویسید

دیدگاه پس از بررسی منتشر می‌شود.

نمایش راه‌های ارتباط سریع
پشتیبانی آنلاین ثبت و پیگیری تیکت تماس مستقیم 09190911797