آیا در جستجوی بهترین راه برای به روزرسانی خودکار قیمت محصول با انتخاب یک محصول اضافی توسط مشتری هستید؟ در آموزش امروز ، ما به شما نشان می دهیم که چگونه قیمت محصول را به صورت برنامه ای در ووکامرس به روز کنید. این بدان معناست که ما از هیچ افزونه یا نصب ابزار اضافی استفاده نخواهیم کرد.
توجه به این نکته ضروری است که شما می توانید گزینه های اضافی زیادی را برای محصولات در فروشگاه خود در نظر بگیرید. به عنوان مثال ، ممکن است بخواهید برای بسته بندی اضافی در فروشگاه خود هزینه ای دریافت کنید. این یک راه عالی برای بهبود تجربه خرید مشتری است.
گزینه های اضافی ووکامرس با قیمت سفارشی
بله ، بسیاری از افزونه ها این قابلیت را در اختیار شما قرار می دهند. با این حال ، لازم به ذکر است که افزونه های زیادی می توانند سایت شما را خراب کنند. در نتیجه سرعت بارگذاری وب سایت شما تحت تأثیر منفی قرار می گیرد. به همین دلیل ما قطعات کد سفارشی را برای کمک به شما در حل این مشکل ایجاد کردیم.
به خاطر داشته باشید که ما از چندین قلاب ووکامرس استفاده خواهیم کرد. این بدان معناست که برای پیاده سازی این راه حل باید برخی از مهارت های برنامه نویسی را داشته باشید. با این حال ، ما سعی می کنیم هر مرحله را به طور مفصل توضیح دهیم تا به شما کمک کند.
قبل از شروع به کار ، شایان ذکر است که برخی از فایل های اصلی را اصلاح می کنیم. بنابراین ، توصیه می کنیم تم کودک را در سایت خود نصب کنید. همچنین می توانید یکی ایجاد کنید. این امر باعث می شود که تغییرات شما در حین بروزرسانی از بین نرود.
ما به یک مثال نگاه می کنیم و منطقی را برای به روز رسانی قیمت اعمال می کنیم. هدف اصلی این آموزش کمک به شما در درک منطق است. اگر آن را به خوبی درک کرده اید ، می توانید اسکریپت ها را سفارشی کرده و در فروشگاه خود اعمال کنید.
چگونه می توان قیمت محصول را به صورت برنامه ای به روز کرد وقتی یک کادر انتخاب در ووکامرس انتخاب می شود
در این بخش ، یک ورودی چک باکس اضافه می کنیم. به این ترتیب ، ما می توانیم منطق سفارشی را برای به روز رسانی قیمت هنگام انتخاب کادر انتخاب اعمال کنیم.
در اینجا مراحل ساده ای است که باید دنبال کنید:
- وارد سایت وردپرس خود شوید و به آن دسترسی پیدا کنید داشبورد به عنوان کاربر مدیر
- از منوی داشبورد ، روی آن کلیک کنید منوی ظاهر> منوی ویرایشگر تم به وقتی صفحه ویرایشگر تم باز شد ، به دنبال فایل توابع موضوع باشید تا عملکرد را به آن اضافه کنید فیلد ورودی چک باکس را به صفحه محصولات اضافه کنید
- کد زیر را اضافه کنید به php فایل :
add_action('woocommerce_after_add_to_cart_button', 'sevencloner_check_box_to_product_page', 30 ); function sevencloner_check_box_to_product_page(){ ?> <div style="margin-top:20px"> <label for="extra_pack"> بسته بندی اضافی <input type="checkbox" name="extra_pack" value="extra_pack"> </label> </div> <?php }
- پس از آن ، وقتی کاربر محصولی را با گزینه بسته بندی اضافی به سبد خرید اضافه می کند ، باید قیمت را به روز کنیم.کد زیر را اضافه کنید:
add_filter( 'woocommerce_add_cart_item_data', 'sevencloner_cart_item_data', 10, 3 ); function sevencloner_cart_item_data( $cart_item_data, $product_id, $variation_id ) { // گرفتن ID و مبلغ محصول $product = wc_get_product( $product_id ); $price = $product->get_price(); // کادر تأیید بسته اضافی if( ! empty( $_POST['extra_pack'] ) ) { $cart_item_data['new_price'] = $price + 20; } return $cart_item_data; }
- مرحله بعدی محاسبه مجدد قیمت کل سبد است. این به جلوگیری از نتایج نامطلوب مانند قیمت هایی که چندین بار به روز می شود یا هر بار که یک کاربر محصول اضافه می کند ، جلوگیری می کند.کد زیر را اضافه کنید:
add_action( 'woocommerce_before_calculate_totals', 'sevencloner_calculate_totals', 10, 1 ); function sevencloner_calculate_totals( $cart_obj ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) { return; } // هر مورد سبد خرید را تکرار کنید foreach( $cart_obj->get_cart() as $key=>$value ) { if( isset( $value['new_price'] ) ) { $price = $value['new_price']; $value['data']->set_price( ( $price ) ); } } }
- این تنها در صورتی است که شما قیمت را زمانی به روز کنید که یک محصول منطق شرطی ما را مطابقت دهد (این که کاربر کادر تأیید بسته بندی اضافی را انتخاب کند).
نتیجه
به طور خلاصه ، ما یک راه حل برای به روزرسانی قیمت در صورت انتخاب کاربر در کادر انتخاب بسته بندی اضافی ، به اشتراک گذاشته ایم. اگر همه شرایط رعایت شود ، عملکرد به طور خودکار 20 دلار اضافی به قیمت اصلی اضافه می کند.
برای جلوگیری از رها شدن سبد خرید ، توصیه می کنیم قیمت را قبل از انتخاب گزینه اضافی به مشتریان نشان دهید.
امیدواریم این پست به شما در حل مشکل کمک کرده باشد.