ویرایش، حذف و اضافه کردن فیلدها در فرم تسویه حساب ووکامرس

نوین ادمین » آموزش بهینه سازی سایت » ویرایش، حذف و اضافه کردن فیلدها در فرم تسویه حساب ووکامرس

  • تاریخ ثبت : 9 اسفند 1398
  • آخرین بروزرسانی : 9 اسفند 1398
  • زمان مورد نیاز برای مطالعه : 11 دقیقه

[ratemypost]

مقدمه

در مورد چی میخوایم صحبت کنیم؟

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

ویرایش فیلدها در فرم تسویه حساب ووکامرس

معرفی فرم تسویه حساب ووکامرس

فرم تسویه حساب چیه ؟

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

معمولاً فرم پیش فرض زیاد برای کاربران رضایت بخش نیست و باید تغییراتی رو در اون لحاظ کرد . مثلاً اگر شما فروشنده فایل های الکترونیکی باشید نیازی به آدرس و کد پستی خریدار ندارید و برای راحتی خرید باید این فیلد ها رو حذف کرد .

ویرایش فیلدها در فرم تسویه حساب ووکامرس

حذف فیلدهای اضافی بدون افزونه

بازم کار با فانکشن !

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

همونطور که میبینید ما با گذاشتن علامت // در ابتدای کدهای مورد نظرمون از حذف فیلدهاشون جلوگیری کردیم. در واقع کد پایین میگه فیلدهای نام ، نام خانوادگی و تلفن نمایش داده بشه بقیه حذف بشه. میتونید همین کار رو هم با سایر کدها انجام بدید.

/* WooCommerce: The Code Below Removes Checkout Fields */
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
 function custom_override_checkout_fields( $fields ) {
 
		/* حذف فیلد نام */
	unset($fields['billing']['billing_first_name']); 
	
		/* حذف فیلد نام خانوادگی */
	unset($fields['billing']['billing_last_name']); 
	
		/* حذف فیلد نام شرکت */
	unset($fields['billing']['billing_company']); 
	
		/* حذف فیلد اول آدرس */
	unset($fields['billing']['billing_address_1']);

		/* حذف فیلد دوم آدرس */
	unset($fields['billing']['billing_address_2']); 
	
		/* حذف فیلد شهر */
	unset($fields['billing']['billing_city']); 
	
		/* حذف فیلد کد پستی */
	unset($fields['billing']['billing_postcode']); 
	
		/* حذف فیلد کشور */
	unset($fields['billing']['billing_country']); 
	
		/* حذف فیلد استان یا ایالت */
	unset($fields['billing']['billing_state']); 
	
		/* حذف فیلد شماره تماس */
	unset($fields['billing']['billing_phone']); 
	
		/* حذف فیلد یادداشت سفارش */
	unset($fields['order']['order_comments']); 
	
		/* حذف فیلد ایمیل  */
	unset($fields['billing']['billing_email']);
	
return $fields;
}

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

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

اضافه کردن فیلد به صفحه تسویه حساب

هر فیلدی دوست دارید به فرم تسویه حساب اضافه کنید

اضافه کردن فیلد قضیش کمی فرق میکنه ! اینجا باید کدهای حرفه ای تری نوشته بشه . اگر بخواید با کدها این کار رو انجام بدید در مقاله “How to Add Custom Fields to WooCommerce Checkout Page” روش کار رو توضیح داده و اگر کمی از کدها سر در میارید میتونید ازش استفاده کنید .

اما اگر زیاد به سر و کله زدن با کدها علاقه ندارید میتونید از افزونه ها استفاده کنید . ما بهتون افزونه  “WooCommerce Checkout Manager” رو پیشنهاد می کنیم .

ویرایش فیلدها در فرم تسویه حساب ووکامرس

معرفی افزونه WooCommerce Checkout Manager

بهترین افزونه برای ویرایش فیلدهای فرم تسویه حساب ووکامرس

نسخه رایگان افزونه WooCommerce Checkout Manager تمامی امکانات مورد نیاز شما رو داره و براحتی میتونید بخش های مختلف صفحه تسویه حساب رو ویرایش کنید و یا در صورت نیاز فیلدی بهش اضافه کنید . حتی در همین نسخه رایگان میتونید فیلد ها رو بر اساس متغیرهایی نمایش بدید . مثلا فیلد برای خرید محصولات یا دسته بندی خاصی فقط نمایش داده بشه .

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

تفاوت billing و shipping در فرم تسویه حساب ووکامرس

تفاوت Billing و Shipping در ووکامرس

کدوم یکی رو باید ویرایش کنیم ؟

قسمت اصلی که باهاش سر و کار داریم Billing هست و اینجا اطلاعات تماس و آدرس پستی شما قرار داره . کلیه فیلد های صفحه تسویه حساب هم بر اساس Billing هست . اما گاهی اوقات شما میخواید محصولی رو خریداری کنید و برای شخص دیگه ای ارسال کنید . مسلماً اطلاعات تماس اون شخص با شما فرق میکنه .

این امکان در سیستم ووکامرس وجود داره که صاحب حساب کاربری اطلاعات دیگه ای به عنوان Shipping ثبت کنه تا محصولات به آدرس دیگه ای بجز آدرس خودش ارسال بشه . شما میتونید جزئیات فرم رو برای هر دو حالت تغییر بدید .

ثبت نام کاربر در فرم تسویه حساب

میشه کاربر همونجا موقع خرید ثبت نام کنه ؟

اگر در بخش پیکره بندی ووکامرس تب حساب کاربری گزینه “ اجازه به مشتریان برای ایجاد حساب کاربری در هنگام تسویه حساب ” رو فعال کنید ، این امکان فراهم میشه که کاربران سایت هنگام خرید محصول نام کاربری و رمز عبورشون رو انتخاب و یک حساب کاربری بسازن . شرایط دیگه ای هم برای ساخت حساب کاربری هست که در سایر گزینه های این بخش میتونید ببینید .

اگر تیک گزینه “ اجازه به مشتریان برای ثبت سفارش بدون نیاز به نام نویسی” رو بزنید کاربران برای خرید نیاز به حساب کاربری ندارن و بصورت میهمان خرید انجام میشه و اطلاعات خرید از طریق ایمیل براشون ارسال میشه .

انتخاب هر کدوم از این حالت ها به سیستم فروش شما بستگی داره . اگر معمولاً کاربران بطور متداول از شما محصولاتی رو خریداری میکنن بهتره امکان ثبت نام فعال باشه تا هر وقت خواستن به محصولاتشون دسترسی داشته باشن .

اما اگر محصولات سایت شما زیاد نیست و کاربر یک بار از شما خرید میکنه و نیاز نداره مدام به سایت سر بزنه بهتره سیستم حساب کاربری رو غیر فعال کنید تا فرایند خرید ساده تر بشه .

عضویت در خبرنامه نوین ادمین

عضو خبرنامه بشید تا مقالات سایت رو از طریق ایمیل براتون ارسال کنیم !

.

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

سوالات متداول کاربران

کاربر یک صفحه تسویه حساب خالی از فیلد میبینه که فقط باید بر روی دمه پرداخت کلیک کنه ! که البته این مورد رو پیشنهاد نمی کنیم .

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

اگر در سایت شما هم محصولات فیزیکی هست و هم محصولات فیزیکی نیاز دارید فرم تسویه حساب متفاوتی برای این دو دسته داشته باشید . یک راهش اینه که بیاید با استفاده از افزونه WooCommerce Checkout Manager فیلد شرطی ایجاد کنید . اینطوری فیلد های مورد نظر شما فقط برای فروش محصولات یک دسته خاص فعال میشه .

یک راه بهتر هم استفاده از افزونه “Digital Goods for WooCommerce Checkout” هست . این افزونه امکانی رو در اختیار شما میزاره که بتونید یک سری فیلدها رو برای فروش محصولات دیجیتال فقط غیر فعال کنید .

دقت کنید به صورت پیش فرض باید همه فیلد ها فعال باشن و با استفاده از کدهای فانکشن و سایر افزونه های مدیریت صفحه تسویه حساب فیلدها رو غیر فعال نکرده باشید .

بعضی از کاربران میپرسن مافقط یک فیلد برای ادرس اونم از نوع بزرگ نیاز داریم . برای این کار نیاز به افزونه دارید . ابتدا فیلد های که لازم ندارید مثل کشور ، شهر ، استان ، کد پستی و . . . رو غیر فعال کنید . حالا با استفاده از افزونه یک فیلد جدید ایجاد کنید و نوع اون رو textarea بزارید .

26 پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما :
      ابتدا باید بررسی کنید این بخش مربوط به افزونه خاصی هست یا توسط ووکامرس درج میشه . اگر مربوط به خود ووکامرس هست به بخش پیکربندی ووکامرس برید و در تب همگانی گزینه “مکان های حمل و نقل” رو غیر فعال کنید و نتیجه رو بررسی بفرمایید .

  1. ندا
    ندا گفته:

    سلام.مرسی از سایت خوبتون.عنوان توضیحات تکمیلی رو چطور حذف کنیم؟با کدها فیلدها حذف شدن اما عنوانش موند.

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما :
      بعضی از بخش ها توسط طراح در قالب درج شدن که ارتباطی با فیلد ها ندارن. باید بررسی بشه سایتتون و در صورتی که مربوط به فیلد ها نباشه باید با استفاده از کدهای css اون رو مخفی کرد.

    • مرتضی
      مرتضی گفته:

      از این کد در انتهای فایل فانکشن استفاده کنید:

      add_filter( ‘woocommerce_enable_order_notes_field’, ‘__return_false’ );

  2. احسان
    احسان گفته:

    سلام عزیز من این فیلد خیابان رو کلمش رو میخوام تبدیل کنم به آدرس امکانش هست دستی این کارو کنم ؟

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما :
      از طریق حلقه های ترجمه ووکامرس تست کنید ببینید تغییر میکنه یا نه . اگر نشد باید فایل ترجمه ووکامرس رو تغییر بدید

  3. ممدم
    ممدم گفته:

    سلام من کشور رو دیزیبل میکنم از طریق افزونه ولی بازم غیرفعال نمیشه یک سوال امکانش هست که فیلد کامل حذف نشه و فقط کشور هارو محدود کنم؟ یعنی فیلدش باشه ولی فقط کشور ایران معلوم باشه

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما :
      احتمالا یا تنظیمات افزونه رو اشتباهی انجام دادید یا اینکه تداخلی با سایر افزونه ها دارید. در خصوص سوال دوم هم میتونید در بخش پیکربندی ووکامرس فروش رو فقط برای کشور ایران محدود کنید.

  4. هادی
    هادی گفته:

    ممنون از این که کدها رو هم توضیح داده بودین که کدوم کل مال کدوم فیلد هست
    ممنون کاربردی بود

    پاسخ
  5. محمد
    محمد گفته:

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

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما محمد عزیز :
      متاسفانه در این خصوص راهی به ذهنمون نمیرسه. باید با طراح افزونه صحبت کنید تا امکانی رو فراهم کنه که بعد از تغییر گزینه های تسویه حساب، محاسبه کرایه محدد انجام بشه. حالا یا صفحه رفرش بشه یا اینکه به صورت آجاکس اطلاعات جدید نمایش داده بشه

  6. محمد
    محمد گفته:

    سلام
    قالب من یک مشکل داره، زمانی که روی یک لیست دروپ دوان مثل نام استان در صفحه تسویه حساب ووکامرس کلیک می کنم بعد از باز شدن لیست، صفحه نمایش به بالای صفحه جاری اسکرول میشه و مجدد باید صفحه رو به پایین بیارم تا لیست رو ببینم!
    البته بار دوم این اتفاق نمیفته و راحت لیست دیده میشه.
    1. آیا امکان تعویض صفحه تسویه حساب هست؟ مثلا اط یک قالب دیگه جایگزین کنم.
    ممنون میشم راهنمایی کنید.

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما محمد عزیز:
      در این خصوص احتمال میدم تداخل دارید. افزونه ها رو غیر فعال کنید و فقط ووکامرس فعال باشه (بهمراه افزونه های ضروری قالب). اونوقت تست کنید ببینید مشکل حل شده یا نه. اگر حل نشده بود باید با طراح قالبتون صحبت کنید. نمیتونید از یک قالب دیگه صفحه تسویه حساب رو بردارید. صفحه تسویه حساب در واقع برگه وردپرسی سایت شماست که شورتکد ووکامرس داخلش قرار میگیره.

    • محمد
      محمد گفته:

      سلام
      مشکل اصلی پیدا نشد ولی مشکل از طریق کد css زیر حل شد.
      این راه حل منه…
      بدرستی کار میکنه:
      /*جهش دروپ دون*/
      .select2-container, .select2-dropdown, .select2-search, .select2-results {
      -webkit-transition: none !important;
      -moz-transition: none !important;
      -ms-transition: none !important;
      -o-transition: none !important;
      transition: none !important;
      }

      اون رو تو قسمت سفارشی سازی css گذاشتم.

  7. مسیح
    مسیح گفته:

    سلام خسته نباشید
    در برگه تسویه حساب دو متن هست :
    قبلا ثبت نام کرده‌اید؟ برای ورود اینجا را کلیک کنید
    کد تخفیف دارید؟ برای نوشتن کد اینجا کلیک کنید
    این دو متن را چطور باید حذف کرد ممنون میشم راهنمایی بفرمایید

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما مسیح عزیز:
      برای اولی باید از بخش پیکره بندی ووکامرس » حساب های کاربری اقدام کنید.
      برای دومی فکر میکنم باید سیستم کوپن تخفیف رو غیر فعال کنید یا از طریق کدهای CSS این بخش رو مخفی کنید. از این راه میشه برای متن اول هم استفاده کرد.

  8. Sam
    Sam گفته:

    سلام
    با این افزونه میشه کاری کرد که فیلد شماره موبایل همون شماره ای باشه که مشتری باهاش ثبت نام کرده و نتونه اون رو تغییر بده؟
    من از افزونه digits برای تایید ثبت نام (وردپرس-ووکامرس) استفاده میکنم که بدون مشکل در هنکام ثبت نام پیام ارسال میکند اما در صفحه مشخصات پرداخت که فیلدهایی مثل آدرس ، کدپستی و … وجود داره، شماره تلفن رو بدون تایید دریافت میکنه.
    آیا راهی هست که بشه در اون قسمت هم شماره موبایل رو تایید کنه و یا از همون شماره موبایل تایید شده در هنگام ثبت نام بصورت خودکار استفاده بشه و مشتری نتونه اون شماره رو تغییر بده؟
    با تشکر

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما:
      نه چنین چیزی با این افزونه امکان پذیر نیست. احتمالا شما باید کاری کنید که کاربران برای خرید مجبور به لاگین باشن. و نکته دیگه اینه که حساب کاربری رو به کمک افزونه ای دیگه قفل کنید تا کاربر مجبور به تایید شماره موبایل باشه. اینطوری هر کس که خرید میکنه قطعاً عضو سایت هست و شماره تماسش تایید شده

  9. sydi
    sydi گفته:

    سلام قربان
    برای سایت مون، نیاز به کمی شخصی سازی و کد نویسی برای این صفحه “تسویه حساب ووکامرسی” داریم
    شما وقت دارید انجام بدید؟
    با تشکر

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما: اگر نیاز به برنامه نویسی داشته باشه خیر انجام نمیدیم. اگر تغییراتتون نیاز به برنامه نویسی نداشته باشه قابل انجام هست. از طریق تلگرام و واتساپ با ما در ارتباط باشید.

  10. SMR
    SMR گفته:

    سلام وقت بخیر.
    آیا امکان اضافه کردن فیلد جدید (مثلاً یک checkBox) هم بدون افزونه هستش؟
    ممنون می‌شم راهنمایی کنید.

    پاسخ
    • شهاب الدین رفیعی
      شهاب الدین رفیعی گفته:

      درود بر شما:
      شاید با کدنویسی php بشه این کار رو انجام داد ولی پیشنهاد نمی کنم. افزونه های مرتبط سنگین نیستن و مشکلی رو ایجاد نمیکنن و خیلی راحت میتونید فیلدهای مورد نظرتون رو اضافه کنید.

  11. حامد
    حامد گفته:

    سلام وقت بخیر
    سپاس بابت آموزش عالی و کاربردیتون
    یک سوال:
    برای تغییر نام فیلدهای پرداخت از طریق کد، کدام فایل در هاست را باید ویرایش کرد؟
    در نمایش سایت با زدن گزینه inspect کد قسمت مورد نظر را پیدا می کنم اما نام فایل مورد نظر در هاست را برای ادیت این قسمت پیدا نمی کنم.
    مثلاً میخوام نام فیلد آدرس خیابان را به آدرس کامل تغییر بدم.
    ممنون میشم راهنمایی بفرمایید.

    پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

دانلود کتاب الکترونیکی

لطفا برای دریافت لینک دانلود اطلاعات خواسته شده را وارد نمایید