همانطور که در این آموزش و در مثال مشاهده خواهید کرد، می توانید قیمت محصول را به صورت برنامه ریزی شده با استفاده از یک فیلتر برای هر محصول WooCommerce تغییر دهید. هنگام ایجاد یک افزونه یا تم ووکامرس، ممکن است بخواهید قیمت محصول را بر اساس شرایط خاصی تغییر دهید. این کد شما را قادر می سازد تا قیمت محصول را به صورت برنامه ریزی شده تغییر دهید.
تغییر قیمت از طریق برنامه زمانی مهم است که شما در حال توسعه تمی هستید که از گزینه های محصولی پشتیبانی می کند که قیمت های متفاوتی برای هر گزینه انتخاب شده دارند.
در مثال خاصی که در بیشتر آموزشهای ووکامرس استفاده کردهام، ممکن است محصول گزینههای دیگری مانند اندازه، رنگ و غیره داشته باشد. وقتی هر یک از این گزینهها انتخاب میشوند، قیمت محصول باید بر اساس آن تنظیم شود.
تغییر قیمت به صورت برنامه ریزی شده در ووکامرس
در صفحه محصول می توانیم منطقی ایجاد کنیم که با افزودن قیمت به قیمت موجود، قیمت را به صورت برنامه ریزی شده تغییر دهد. به عنوان مثال میتوانیم قیمت جدید را نمایش دهیم و با افزودن یک گزینه جدید مانند تصویر زیر، قیمت اصلی را بهروزرسانی کنیم:
ما قیمت را با اضافه کردن یک چک باکس تغییر میدهیم که وقتی کاربر انتخاب میکند، قیمت از نظر برنامهریزی تغییر میکند. برای افزودن یک چک باکس در مکانی که با فلش نشان داده شده است، میتوانید از کد زیر استفاده کنید:
add_action('woocommerce_before_add_to_cart_button', 'add_check_box_to_product_page', 30 ); function add_check_box_to_product_page(){ ?> <form action=" "> <label for="newprice"> New Price</label> <input type="checkbox" name="newprice" value="new_price"><br </form> <?php }
نحوه تغییر قیمت محصول به صورت برنامه ای
برای تغییر قیمت در صفحه محصول، باید قیمت محصول خاص را از شیء جهانی پست دریافت کنیم، زیرا محصول یک نوع پست سفارشی است و تمام متدهای شیء جهانی $post را دارد.
بنابراین ما باید قلاب فیلتری را ایجاد کنیم که به “woocommerce_get_price” متصل شود، سپس قیمت را فیلتر کرده و تغییری را که برای تغییر برنامهای قیمت نیاز داریم اضافه میکنیم. این کد برای تغییر قیمت در تابع callback موجود است.
بنابراین اگر بخواهیم قیمت جدید اضافه، کسر یا مضرب داشته باشد می توانیم آن را در کد اعمال کنیم.
کد زیر کدی است که با اضافه کردن هزینه اضافی 35، قیمت اصلی را به صورت برنامه ریزی شده تغییر می دهد، ابتدا باید قیمت اصلی محصول را به صورت زیر تنظیم کنیم:
ما می توانیم کدی را اضافه کنیم که 35 را به قیمت موجود اضافه می کند و قیمت جدید با قیمت اضافی نمایش داده می شود:
add_filter('woocommerce_get_price', 'woocommerce_change_price_by_addition', 10, 2); function woocommerce_change_price_by_addition($price, $product) { //شیء پست جهانی و شناسه پست global $post; $post_id = $post->ID; //محصول را دریافت کنید $product = wc_get_product( $post_id ); // با اضافه کردن عدد 35 قیمت را تغییر دهید $price = ($price + 35); //قیمت جدید را برگردانید return $price; }
قیمت جدید مانند قیمتی که در تصویر زیر مشاهده می کنید نمایش داده می شود:
اکنون می توانیم قیمت جدید را در هر جایی که بخواهیم در صفحه محصول ووکامرس نمایش دهیم. به عنوان مثال، قیمت را می توان با چک باکسی که به صورت مشروط قیمت را مطابق تصویر بالا تغییر می دهد، نمایش داد.
همچنین میتوانید کد را تغییر دهید تا منعکسکننده تغییری باشد که میخواهید و میتوانید این کد را به گونهای گسترش دهید که یک گزینه Backend داشته باشد که قیمت را بر اساس مقدار، اندازه تغییر میدهد یا حتی ورودی خود را از قیمت اضافه کنید، همانطور که در این مورد نشان داده شده است. گزینه تغییر پویا قیمت را با استفاده از قسمت محصول در باطن اضافه کرده اند:
بسته بندی
راه های زیادی وجود دارد که می توانید قیمت محصول را به صورت برنامه ریزی شده تغییر دهید، در این پست؛ من می خواستم فقط با مثالی توضیح دهم که چگونه می توان قیمت را تغییر داد. شما می توانید این راه حل را در چندین مورد دیگر مانند زمانی که در حال اضافه کردن مالیات، کار با محصولات متغیر یا اعمال تخفیف و پرداخت جزئی در ووکامرس هستید، استفاده کنید.