Configer 526 ارسال شده در بهمن 1، 1400 گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 سلام خدمت دوستان در قسمت ووکامرس وقتی مشتری محصولی خریداری میکنه بار اول فیلد های سفارش رو خالی میاره ولی یکبار که خرید میکنه سفارشش ثبت میشه بار دوم میخاد خرید کنه دوباره ادرس قبلی براش میاد وباید بشینه هر فیلد رو دوباره ویرایش کنه و ادرس جدید بده میخاستم به طوری باشه که هربار توی ثبت سفارش فیلد های ادرس و .... براش خالی بیاد چجوری میتوتم اینکارو انجام بدم؟ لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Masih 6,279 ارسال شده در بهمن 1، 1400 گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 درود؛ این کد رو در فایل functions.php قالبتون قرار بدید: add_filter( 'woocommerce_checkout_get_value', 'masih_clear_shipping_fields_values', 5, 2 ); function masih_clear_shipping_fields_values( $value, $input ) { $keys = ['first_name','last_name','company','address_1','address_2','city','postcode','country','state']; $key = str_replace('shipping_', '', $input); if( in_array($key, $keys) && is_checkout() ) { $value = ''; } return $value; } 1 لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Configer 526 ارسال شده در بهمن 1، 1400 مالک گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 بله اضافه کردم دستتون درد نکنه ولی اون قسمت حمل نقل به یک ادرس متفاوت خالی شد میخاستم قسمت جزئیات صورت حساب یا صورت حساب حمل نقل خالی بشه لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Masih 6,279 ارسال شده در بهمن 1، 1400 گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 کدی که دادم تمامی فیلدهای صفحه سفارش رو برای کاربر پاکسازی میکنه و مانع لود شدن مقادیر تکمیل شده از قبل توسط کاربر میشه. حالا این وسط ممکنه افزونه یا کدی در قالبتون وجود داشته باشه که با کارایی کدی که من دادم تداخل ایجاد کنه و مانع این پاکسازی بشه. این کد رو هم پایین همون کد قبلی استفاده کنید تا اولویت کدهای حذف اطلاعات رو افزایش بدید: add_filter('woocommerce_checkout_get_value','__return_empty_string',10); یا بجای اون کد قبلی می تونید از این کد هم استفاده کنید: add_filter('woocommerce_checkout_fields', 'default_values_checkout_fields'); function default_values_checkout_fields($fields) { if (!is_user_logged_in()) { unset($fields['billing_city']); unset($fields['billing_first_name']); unset($fields['billing_last_name']); unset($fields['billing_company']); unset($fields['billing_address_1']); unset($fields['billing_address_2']); unset($fields['billing_city']); unset($fields['billing_postcode']); unset($fields['billing_country']); unset($fields['billing_state']); unset($fields['billing_email']); unset($fields['billing_phone']); unset($fields['shipping_city']); unset($fields['shipping_first_name']); unset($fields['shipping_last_name']); unset($fields['shipping_company']); unset($fields['shipping_address_1']); unset($fields['shipping_address_2']); unset($fields['shipping_postcode']); unset($fields['shipping_country']); unset($fields['shipping_state']); return $fields; } } توی کد بالا هر فیلد بطور مشخص لیست شده که این فیلدها مقادیر پیش فرض نخواهند داشت. اگه قصد دارید هر فیلد از مقادیر قبلی کاربر استفاده کنه، خط مربوط به اون فیلد رو حذف کنید 1 لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Configer 526 ارسال شده در بهمن 1، 1400 مالک گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 کد اولی که دادید رو به کد قبلی اضافه کردم همه چی درست شد فیلدها خالی شدن اما قسمت حمل نقل از کار افتاد بعد از وارد کردن ادرس هم میزنه هیچ گزینه ارسالی در دسترس نیست کد دومی که دادید توی تایپیک اخری اونو هم استفاده کردم اما کلا فیلد هارو حذف کرد لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Masih 6,279 ارسال شده در بهمن 1، 1400 گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 برای کد اول باید قالب رو دیباگ کنید، کدی توی قالب وجود داره که مانع از عملکرد صحیح اون کد میشه. راه بعدی جی کوئری هست به این صورت که تمامی فیلدها رو موقع لود صفحه پاک کنیم! این کد رو هم توی functions.php قالب قرار بدید بجای کدهای قبلی function masih_print_script() { if (is_page(12345)) { ?> <script type="text/javascript"> ( function( $ ) { $('form').each(function() { this.reset() }); }( jQuery ) ); </script> <?php } } add_action( 'wp_footer', 'masih_print_script' ); بجای 12345 هم آی دی صفحه تسویه حساب رو وارد کنید تا جی کوئری فقط توی اون برگه اجرا بشه. اگر نیاز شد باید کد رو خودتون توسعه بدید تا با قالبتون سازگار بشه لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Configer 526 ارسال شده در بهمن 1، 1400 مالک گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 add_filter( 'woocommerce_checkout_get_value', 'bks_remove_values', 10, 2 ); function bks_remove_values( $value, $input ) { $item_to_set_null = array( 'billing_first_name', 'billing_last_name', 'billing_company', 'billing_address_1', 'billing_address_2', 'billing_postcode', 'billing_email', 'billing_phone', 'billing_number', 'shipping_first_name', 'shipping_last_name', 'shipping_company', 'shipping_address_1', 'shipping_address_2', 'shipping_postcode', 'shipping_number', ); // All the fields in this array will be set as empty string, add or remove as required. if (in_array($input, $item_to_set_null)) { $value = ''; } return $value; } من کد هارو به این شکل ویرایش کردم به ته فایل فانکشن اضافه کردم همه فیلدهارو به غیر از استان و شهر رو خالی میکنه و هزینه ارسال رو محاسبه میکنه لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
Masih 6,279 ارسال شده در بهمن 1، 1400 گزارش اشتراک گذاری ارسال شده در بهمن 1، 1400 شناسه فیلدهای شهر و استان و کشور اینا هستند: shipping_city shipping_country shipping_state لینک به دیدگاه به اشتراک گذاری در سایت های دیگر More sharing options...
پست های پیشنهاد شده