ووکامرس
در حال خواندن
آموزش حذف فیلدهای غیرضروری از محصولات مجازی و دانلودی ووکامرس
58

آموزش حذف فیلدهای غیرضروری از محصولات مجازی و دانلودی ووکامرس

توسط حنان ابراهیمی ستوده۴ خرداد ۱۳۹۴

سلام .

یکی از دلایلی که معمولا از Easy Digital Downloads برای فروش محصولات مجازی استفاده میکنیم ساده بودن فرایند خریدشه .

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

 

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

 

خب ابتدا به قسمت زیر مراجعه کنید :

مدیریت وردپرس >> ووکامرس >> پیکربندی >> محصولات >> محصولات دانلودی .

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

 

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

<?php
add_filter( 'woocommerce_checkout_fields' , 'WooCommerce_EDD_Checkout' );
function WooCommerce_EDD_Checkout( $fields ) {
    
    global $woocommerce;
    $hasPhysicalProduct = false;
    
    if ( ! empty( $woocommerce->cart->cart_contents ) ) {
        
        $cart = $woocommerce->cart->get_cart();
        foreach ( $cart as $key => $values ) {

            $_product = get_product( $values['variation_id'] ? $values['variation_id'] : $values['product_id'] );

            if ( ! empty( $_product ) && $_product->exists() && $values['quantity'] > 0 ) {
                
                if ($_product->virtual == 'no' && $_product->downloadable == 'no') {
                    $hasPhysicalProduct = true;
                    break;
                }
            }
        }
    }

    if ($hasPhysicalProduct == false) {
        //unset($fields['billing']['billing_last_name']);
        //unset($fields['billing']['billing_phone']);
        unset($fields['billing']['billing_address_1']);
        unset($fields['billing']['billing_address_2']);
        unset($fields['billing']['billing_company']);
        unset($fields['billing']['billing_city']);
        unset($fields['billing']['billing_postcode']);
        unset($fields['billing']['billing_country']);
        unset($fields['billing']['billing_state']);
    }
    return $fields;
}

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

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

برای مشاهده لینک کلیک کنید .

درباره نویسنده
حنان ابراهیمی ستوده
حنان ابراهیمی ستوده
حنّان ابراهیمی ستوده هستم ، دانشجوی کارشناسی ارشد مهندسی برق قدرت دانشگاه شهید بهشتی تهران ، علاقه مند به برنامه نویسی مخصوصا تحت وب و زبان php .
58دیدگاه ها
  • ۱۲ خرداد ۱۳۹۴ at ۳:۱۷ ب٫ظ

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

  • سجاد
    ۱۷ خرداد ۱۳۹۴ at ۱:۲۴ ب٫ظ

    مرسی عزیز دست گلت درد نکنه عالی و بسیار مفید بود.

  • خالد
    ۳۰ خرداد ۱۳۹۴ at ۵:۰۱ ب٫ظ

    سلام آقای ابراهیمی عزیز
    من در فروشگاهم فایل میفروشیم و فروش فایل یعنی فروشگاه مجازی خوب تا اینجای کار همه چیز درسته ولی من خودمو جای مشتری میذارم میام در فروشگاه و فایلمو انتخاب میکنم اما به جای یک بار کلیک اشتباهی دو بار روی فایل کلیک میکنم .از آنجایی که من حواسم نیست در قسمت تسویه حساب همه فیلدها را پر میکنم ولی متوجه این نمیشم که یک فایل 1000 تومانی را دوبار کلیک کردم و جمعش شده 2000 تومان پس اتمام خرید میکنم و حتی در موقعی که به درگاه بانک وصل شدم هم متوجه نمیشم، حالا فروشگاه برای من دوتا فایل میفرسته که یکسان هست و من هزار تومن اضافی دادم …. سوال من اینه که آیا میشه کاری کرد که تعداد برای فایل 1 ثابت باشه و این فایل مشخص با دو بار کلید تعداد آن اضافه نشود یعنی انتخاب آن بین 1 و 0 باشد منظور من اینه که وقتی از سبد خرید حذف کردیم دوباره بتوانیم انتخاب کنیم و بیشتر از یک بار نشه تا اینکه دوباره از سبد خرید حذف کنیم اگر ممکنه بگویید چگونه در ووکامرس این کار را انجام دهم ؟

    • حنان ابراهیمی ستوده
      ۳۰ خرداد ۱۳۹۴ at ۵:۵۳ ب٫ظ

      سلام دوست عزیز.
      متوجه منظورتون شدم . بله این کار در ووکامرس برای همه محصولات چه دانلود شدنی و مجازی چه فیزیکی امکان پذیر هست .
      شما وقتی میخواید که محصولتون رو به ووکامرس اضافه کنید تو اطلاعات محصول چند تا تب وجود داره . یکی از این تب ها ، تب “انبار” هست . فرقی نمیکنه محصول مجازی یا دانلودی باشه یا نباشه . در داخل این تب “انبار” ، یک گزینه وجود داره به اسم “فروش جداگانه” که کنارش نوشته “اگر مایل به فروش تکی هستید، این گزینه را فعال کنید” . اگر این گزینه رو فعال کنید کاربر نمیتونه بیشتر از 1 بار سفارش بده و بار دوم با پیغام مواجه میشه .
      بهرحال به نظر من خریداری که در حین پرداخت تو صفحه بانک نگاه نمیکنه که چقدر داره پرداخت میکنه همون بهتر که ضرر کنه 😀
      شوخی کردم . موفق باشید .

      • خالد
        ۳۰ خرداد ۱۳۹۴ at ۶:۲۷ ب٫ظ

        خوب ایشون خریدشو کرد و لینک به ایمیلشان فرستاده شد حالا مشتری دیگه میخواد همون فایلو بخره آیا میتونه یا من باید اون فایلو مجدداً موجود کنم ؟

        • حنان ابراهیمی ستوده
          ۳۰ خرداد ۱۳۹۴ at ۱۰:۱۲ ب٫ظ

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

  • سعید
    ۵ تیر ۱۳۹۴ at ۶:۲۳ ب٫ظ

    جناب ابراهیمی…
    نتونستم صفحه ارتباط با ما رو پیدا کنم.
    اگه ممکنه شماره تماسی بهم بدید تا بتونم تماس بگیرم

  • محسن
    ۱۶ تیر ۱۳۹۴ at ۱:۰۳ ب٫ظ

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

  • ۱ مرداد ۱۳۹۴ at ۲:۱۹ ب٫ظ

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

    وقتی کسی خرید میکنه لینک دانلود واسش ارسال نمیشه؟؟؟

  • عبادی
    ۱۰ مرداد ۱۳۹۴ at ۱:۴۷ ق٫ظ

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

  • ۱۱ مرداد ۱۳۹۴ at ۶:۲۶ ب٫ظ

    با سلام من این کد رو گذاشتم اما
    نام
    نام خانوادگی
    ایمیل
    شماره تماس
    برام گذاشت حالا اگه بخوام نام خانوادگی و شماره تماس رو بردارم دقیقا کدوم کد ها رو باید پاک کنم ممنون میشم راهنماییم کنید

  • hamid
    ۱۷ مرداد ۱۳۹۴ at ۰:۰۸ ق٫ظ

    با تشکر از مطالب زیباتون واقعا مطالب جالب و مفیدی بود باتشکر مهندس…

  • ناهید
    ۲۰ مرداد ۱۳۹۴ at ۷:۲۰ ب٫ظ

    سلام . سپاسگزارم از آموزش مفیدتون. یه مشکلی پیش اومده برام، ممنون میشم اگه راه حلی به نظرتون میرسه، بفرمایید. راستش من دیشب که برای اولین بار، ووکامرس رو نصب کردم، یه فایل امتحانی گذاشتم برای فروش؛ درگاه بانکی جهان پی هم وصل کردم بهش و امتحانی یه بار خریدمش و کاملا درست عمل کرد و بعد از پرداخت به سایت برگشت و لینک دانلود ظاهر شد (لینک دانلود ایمیل هم شد). اما صبح که کمی تغییرات توی تنظیمات دادم، بعد از پرداخت متاسفانه به سایت ریدایرکت نمیشه و صفحه ی سفیدی ظاهر میشه که (-1) توش نوشتس. در ضمن اینم بگم که من دوباره تمام تنظیمات رو درست چک کردم و همون طوری بوده که همه ی سایتا پیشنهاد داده بودن. البته یه بروزرسانی هم از دیشب اومد برای ووکامرس که من آپدیت کردم. ممکنه مشکل از اون باشه؟ مرسی

    • حنان ابراهیمی ستوده
      ۲۱ مرداد ۱۳۹۴ at ۳:۳۸ ب٫ظ

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

      https://wordpress.org/plugins/parspal-woocommerce/

  • ناهید
    ۲۱ مرداد ۱۳۹۴ at ۵:۱۲ ب٫ظ

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

    • حنان ابراهیمی ستوده
      ۲۱ مرداد ۱۳۹۴ at ۵:۱۶ ب٫ظ

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

      • ناهید
        ۲۱ مرداد ۱۳۹۴ at ۶:۲۸ ب٫ظ

        مرسی. از نظر کارمزد که جهان پی، بی شک کمترین میزان رو دریافت میکنه، (نیم درصد، به ازای درگاه واسطه و 1 درصد به ازای درگاه مستقیم). اما فکر کنم اسکریپت هاشون رو جالب درنمیارن، چون یکی دو جا دیگه هم دیدم مشکل وجود داشت با جهان پی. به هر حال از لطفتون سپاسگزارم

  • ۲ شهریور ۱۳۹۴ at ۱۱:۳۵ ق٫ظ

    داداش مرسی . خیلی مفید بود . تشکر فراوان 🙂

  • محمد
    ۵ شهریور ۱۳۹۴ at ۱:۲۶ ق٫ظ

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

  • ۶ آبان ۱۳۹۴ at ۱۲:۲۹ ب٫ظ

    خیلی خوب بود. بسیار ممنونم و مشکلم برطرف شد.

  • ۲۸ آبان ۱۳۹۴ at ۸:۲۰ ق٫ظ

    آقا حنان من از سایت پرشین اسکرپت با شما و سایتتون آشنا شدم.

    واقعا کارتون عالی هست.

    بوکمارکش کردم و دیگه همیشه بهتون سر میزنم. 🙂

  • ۲۹ آبان ۱۳۹۴ at ۳:۵۸ ب٫ظ

    سلام
    آیا لینک دانلود بعد از اتمام خرید با ووکامرس
    به پروفایل خریدار هم ارسال میشه ؟
    « منظورم همون جایی که ثبت نام کرده یا محیط کاربری»
    با تشکر
    راهنمایی فرمایید

    • حنان ابراهیمی ستوده
      ۳۰ آبان ۱۳۹۴ at ۴:۵۲ ب٫ظ

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

  • حسین
    ۱۶ آذر ۱۳۹۴ at ۳:۱۲ ب٫ظ

    یعنی بالا نمیاد این خطا رو میده:
    Fatal error: Call to undefined function add_filter() in /home/projectm/public_html/wp-includes/functions.php on line 5003

  • هادی
    ۳۰ بهمن ۱۳۹۴ at ۴:۳۶ ب٫ظ

    ممنونم عالی بود

  • مسعود
    ۱۷ اسفند ۱۳۹۴ at ۲:۰۹ ب٫ظ

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

  • محمد
    ۲ اردیبهشت ۱۳۹۵ at ۱۱:۰۳ ق٫ظ

    سلام
    ممنون بابت آموزشی که ارائه کردید. دو تا سوال داشتم لطفا اگه برایتون مقدوره جواب بدید
    1- برای غیر محصولات دانلود برای شخصی سازی فیلدها میشه از این کد استفاده کرد؟ کد دیگه ای دارید که این کارو انجام بدم
    2- توی صفحه مشخصات یه قسمت داره به عنوان “سفارشات به همین آدرس ارسال شود.” اینو میشه حذف کرد؟

  • ۲ اردیبهشت ۱۳۹۵ at ۱۱:۵۶ ق٫ظ

    سلام بنده هم کد رو قرار دادم کلا صفحه سفید میاد
    ?> این رو هم به اخر تابع functions.php اضافه کردم با این و بدون این مشکل برقرار است

  • ۱۷ خرداد ۱۳۹۵ at ۴:۲۹ ق٫ظ

    سلام و نشکر
    عالی بود

  • داود
    ۲۷ مرداد ۱۳۹۵ at ۱:۴۹ ق٫ظ

    عااااااااااااااااااااااااااااااااااااااااالی بود عاااااااالی
    خیلی ذنبالش کشتم
    ممنونم

  • متین
    ۲۸ مرداد ۱۳۹۵ at ۶:۵۹ ب٫ظ

    خیلی عالی بود
    با تشکر از شما

  • آرش
    ۳۰ مرداد ۱۳۹۵ at ۱۱:۵۶ ق٫ظ

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

  • جواد
    ۹ مهر ۱۳۹۵ at ۹:۳۲ ب٫ظ

    با سلام و عرض ادب

    می خواستم بدونم چطور میشه تو صفحه بررسی خرید، جزئیات پرداخت را کم کرد

    یعنی از اینکه می خواد خریدار تمام مشخصات خود را وارد کنه تا بشه خرید را کامل کنه

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

    ممنون میشم راهنمایی بفرمایید

  • سعید
    ۱۹ مهر ۱۳۹۵ at ۴:۴۹ ب٫ظ

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

  • ۲۴ آذر ۱۳۹۵ at ۱۲:۱۴ ب٫ظ

    خیلی کاربردی بود مرسی ازتون مخصوصا اینکه فرآیند خرید کاربر پسند میکنه

نظر بدهید