خوش آمدید به اپن کارت با طعم پارسی - مرجع رسمی اپن کارت

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

حذف فیلدهای فرم ثبت نام کاربر در اپن کارت ۲



توضیحات

در این آموزش به نحوه حذف یا ویرایش گزینه های فرم های ثبت نام کاربر به صورت دستی می پردازیم

هرچند در اپن کارت ۲ امکان اضافه کردن فیلدهای سفارشی به فرم های ثبت نام کاربر جدید، به صورت پیش فرض وجود دارد اما گاهی ممکن است نیاز داشته باشیم تا برخی ار فیلدها، نمایش داده نشود.

هرچند فکر می کنم بهترین روش برای انجام این کار استفاده از ماژول های vqmod/ocmod هست اما راه حل سریع تر ویرایش فایل های سورس اپن کارت است. فرض کنیم من می خواهم در فرم ثبت نام کاربر، فیلد اجباری مربوط به شماره تلفن را حذف کنم.

 

حذف فیلدهای اجباری دراپن کارت

0014.png

چون این فیلد از نوع اجباری است، باید برای حذف آن دو فایل زیر ویرایش شوند:

۱- فایل catalog/view/theme/name_template/template/account/register.tpl با جستجوی کلمه telephone در خط ۷۲ خطوط مربوط به نمایش فیلد ورودی و نمایش خطا برای شماره تلفن، پیدا می شود. می توانید این خطوط را پاک کنید

          <div class="form-group required">            <label class="col-sm-2 control-label" for="input-telephone"><?php echo $entry_telephone; ?></label>            <div class="col-sm-10">              <input type="tel" name="telephone" value="<?php echo $telephone; ?>" placeholder="<?php echo $entry_telephone; ?>" id="input-telephone" class="form-control" />              <?php if ($error_telephone) { ?>              <div class="text-danger"><?php echo $error_telephone; ?></div>              <?php } ?>            </div>          </div>

۲- در فایل catalog/controller/account/register.php با جستجو کردن کلمه telephone به خط ۳۷۴ می رسیم. این خطوط مربوط به نمایش خطا برای فیلدهای اجباری هستند. می توانیم خطوط زیر را حذف کنیم:

                if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {			$this->error['telephone'] = $this->language->get('error_telephone');		}

 هر دو فایل رو پس از اصلاح، ذخیره کنید، فرم ثبت نام جدید من به این صورت تغییر کرده است:

0017.png

0018.png

0019.png

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

توجه ۲ :‌ در صورتی که می خواهید فیلدها در فرم های مختلف دیگری هم نمایش داده نشوند، باید همین مراحل رو برای همان فرم ها مجددا اجرا بکنید

توجه ۳ :‌در صورتی که خطا یا مشکلی با این روش پیش اومد حتما بهم اطلاع بدید، من این روش رو فقط روی چند مورد به صورت محدود اجرا کردم.

توضیح تکمیلی:

اپن کارت از معماری سه لایه یا همان MVC استفاده می کند، به این معنی که در طراحی قسمت های مختلف و به خصوص ماژول ها، معمولا یه بخش جداگانه داریم :

  • کنترلر : که عملیات منطقی یا همان روندهای اجرا در آن پیاده سازی می شوند. کنترلرها معمولا اطلاعاتی را از دیتابیس (مدل) یا فیلدهای پر شده توسط کاربر دریافت می کنند و پس از انجام عملیاتی بر روی انها، اطلاعات پردازش شده را برای نمایش به ویو (view) ارسال می کنند.
  • مدل : در حالت کلی رابط بین کنترلرها و منابع دیتا مانند دیتابیس یا سرور ایمیل یا سرور پیام کوتاه و ... هستند.
  • ویو: معمولا کد های قابل نمایش هستند که توسط کنترلرها فراخوانی شده و به عنوان خروجی برای کاربر ارسال و نمایش داده می شوند.

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

  1. ابتدا باید فایل های view مربوط به بخش های مورد نظر را یافته و ویرایش کنیم
  2. در مواردی مانند حذف فیلدهای ضروری (اجباري) علاوه بر ویرایش فایل های view باید فایل های کنترلری که اطلاعات آن بخش ها را پردازش می کنند را نیز ویرایش بکنیم.

 در ادامه مثال قبل اینبار می خواهیم هر دو فیلد آدرس را از قسمت پرداخت «به صورت مهمان» حذف کنم:

 1856.jpg

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

1857.jpg

فایل های ویو برای قسمت «پرداخت به صورت» مهمان در مسیر زیر قرار دارد:

 /catalog/view/theme/نام-قالب-شما/template/checkout/guest.tpl

 این فایل را با نوت پد یا هر نرم افزار پردازش متن باز کنید و در آن به دنبال دو کلمه input-payment-address-1 و input-payment-address-2 بگردید. برای قالب من این رو مقدار در خطوط ۱۶۱ و ۱۶۵ قرار داشتند. خطوط مربوط به آن رو فیلد را حذف یا کامنت کنید:

 

  1. <div class="form-group required">
  2.         <label class="control-label" for="input-payment-address-1"><?php echo $entry_address_1; ?></label>
  3.         <input type="text" name="address_1" value="<?php echo $address_1; ?>" placeholder="<?php echo $entry_address_1; ?>
  4. " id="input-payment-address-1" class="form-control" />
  5. </div>
  6. <div class="form-group">
  7.         <label class="control-label" for="input-payment-address-2"><?php echo $entry_address_2; ?></label>
  8.         <input type="text" name="address_2" value="<?php echo $address_2; ?>" placeholder="<?php echo $entry_address_2; ?>"
  9. id="input-payment-address-2" class="form-control" />
  10. </div>

 فایل را ذخیره کنید:

1858.jpg

چون فیلد مربوط به آدرس یک اجباری بود باید در فایل کنترلر نیز کدهای مربوط به input-payment-address-1 را یافته و ویرایش کنیم. فایل کنترلر مربوطه:

/catalog/controller/checkout/guest.php

برای نسخه اپن کارت من (۲٫۱٫۰٫۱) خطوط ۲۱۵ و ۲۱۶ و ۲۱۷ و ۲۸۶ و ۲۸۷ و ۳۳۸ و ۳۳۹ مربوط به پردازش فیلدهایی با نام address_1 و address_2 وجود دارند، خطوط مربوط را حذف می کنم چون نیازی به پردازش چنان فیلدهایی وجود ندارد:

if ((utf8_strlen(trim($this->request->post['address_1'])) < 3) || (utf8_strlen(trim($this->request->post['address_1'])) > 128)) {	$json['error']['address_1'] = $this->language->get('error_address_1');}$this->session->data['payment_address']['address_1'] = $this->request->post['address_1'];$this->session->data['payment_address']['address_1'] = $this->request->post['address_2'];$this->session->data['shipping_address']['address_1'] = $this->request->post['address_1'];$this->session->data['shipping_address']['address_1'] = $this->request->post['address_2'];

 پس از ذخیره کردن فایل کنترلر، صفحه را رفرش کنید و عملیات پرداخت را به صورت «پرداخت مهمان» ادامه دهید. فیلدهای ادرس یک و ادرس دو مورد نیاز نبوده و نمایش داده نخواهند شد.

مشاهده  و طرح مشکلات  مطلب در Ressan.ir

 


1


0 دیدگاه

هیچ دیدگاهی برای نمایش وجود دارد.