kootlas 3 ارسال شده در مهر 93 گزارش بازنشر ارسال شده در مهر 93 (ویرایش شده) سلاممن میخوام توابع تاریخ کدهای ضمیمه شده رو از میلادی به شمسی تغییر بدم؛ کسی میتونه کمکم کنه؟public function wpsd_getting_countdown_script($date) {$date = strtotime($date);return "<script type='text/javascript'> var year='".date('Y',$date)."'; var month='".date('m',$date)."'; var day='".date('d',$date)."'; var hour='".date('H',$date)."'; var minute='".date('i',$date)."'; var dealstimeflag = '1'; var currenttime = '".date('F d, Y H:i:s', time())."'; var today = new Date(currenttime); </script>";}/*** Return Start Date** Handles to return start date** @package WooCommerce WP Social Deals* @since 1.0.0*/public function wpsd_get_start_date( $post_id ) {$product_type = $this->wpsd_get_product_type( $post_id );if( strtolower($product_type) == 'variable' || strtolower($product_type) == 'grouped' ) { // check product type is variable or grouped$start_date = get_post_meta( $post_id, '_wpsd_start_date', true );} else {$start_date = get_post_meta( $post_id, '_sale_price_dates_from', true );}$start_date = !empty($start_date) ? date_i18n( 'Y-m-d H:i:s', $start_date ) : '';return $start_date;}/*** Return End Date** Handles to return end date** @package WooCommerce WP Social Deals* @since 1.0.0*/public function wpsd_get_end_date( $post_id ) {$product_type = $this->wpsd_get_product_type( $post_id );if( strtolower($product_type) == 'variable' || strtolower($product_type) == 'grouped' ) { // check product type is variable or grouped$end_date = get_post_meta( $post_id, '_wpsd_end_date', true );} else {$end_date = get_post_meta( $post_id, '_sale_price_dates_to', true );}$end_date = !empty($end_date) ? date_i18n( 'Y-m-d H:i:s', $end_date ) : '';return $end_date;} ویرایش شده مهر 93 توسط kootlas نقل قول لینک به ارسال
Parsa 23463 ارسال شده در مهر 93 گزارش بازنشر ارسال شده در مهر 93 اگر در وردپرس هستافزونه wp-parsidate را نصب کنیدسپس تابع parsidate را در کد جایگزین توابع date , date_i18n کنید 2 نقل قول لینک به ارسال
kootlas 3 ارسال شده در مهر 93 مالک گزارش بازنشر ارسال شده در مهر 93 اگر در وردپرس هستافزونه wp-parsidate را نصب کنیدسپس تابع parsidate را در کد جایگزین توابع date , date_i18n کنیدبله وردپرس هستمیشه بیتشر توضیح بدید؟ یعنی هر جای date_i18n و date دیدم بنویسم $parsidate ؟ مثلاً تو این جمله: var day='".date('d',$date)."';اون .date رو باید جایگزین کنم یا اون $date رو؟ نقل قول لینک به ارسال
Parsa 23463 ارسال شده در مهر 93 گزارش بازنشر ارسال شده در مهر 93 توابع رو date برای مثال$ برای تعریف مغییر هست 2 نقل قول لینک به ارسال
kootlas 3 ارسال شده در مهر 93 مالک گزارش بازنشر ارسال شده در مهر 93 توابع رو date برای مثال$ برای تعریف مغییر هستاین کار رو که شما فرمودید انجام دادم بعدش به جای نمایش تاریخ روز و ماه و سال مینویسه NaN یعنی به جای روز مینویسه NaN به جای ماه هم همینو مینویسه به جای سال هم همینو مینویسه نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در مهر 93 گزارش بازنشر ارسال شده در مهر 93 بسته پارسی ساز را نصب کردید؟ اگر بله [/size] var year='".parsidate('Y',$date)."'; var month='".parsidate('m',$date)."'; var day='".parsidate('d',$date)."'; var hour='".parsidate('H',$date)."'; var minute='".parsidate('i',$date)."'; var dealstimeflag = '1'; var currenttime = '".parsidate('F d, Y H:i:s', time())."'; را در ابتدای کدها تغییر دهید اگر باز هم مشکل باقی بود دقیقا توضیح بدید کد چه کاری انجام می ده چون به نظرم یک مدت را محاسبه می کنه که در اینصورت شمسی کردنش هم بی دلیله و هم به اینصورت ممکنه تو محاسبه اشتباه کنه 1 نقل قول لینک به ارسال
kootlas 3 ارسال شده در مهر 93 مالک گزارش بازنشر ارسال شده در مهر 93 ممنون از پاسختون جناب فخاربگذارید من یه توضیحی بدم خدمتتون که اصلاً این کد دقیقاً چیکار میکنه و از کجا اومدهاین کد بخشی از فایل class-wpsd-model.php در افزونه [social deals engine] هست. این افزونه یک افزونه برای ووکامرس هست که کارای مختلفی رو انجام میده که من در اینجا فقط به اون قسمتی که مشکل دارم اشاره میکنم، این افزونه میاد از افزونه ووکامرس تاریخهای شروع و پایان فروش ویژه رو میگیره و زمان مانده به اتمام تاریخ پایان فروش ویژه رو نشون میده به عنوان مثال فرض کنید ما تاریخ فروش ویژه رو از 1 مهر تا 30 مهر تعیین کرده باشیم و امروز 20 مهر باشه، خب این افزونه یک زمان شمارشگر معکوس رو نشون میده که توش نوشته شده 10 روز و n ساعت و n دقیقه و n ثانیه به پیان زمان خرید فرصت باقیست.حالا مشکلش با شمسی رو براتون شرح میدم، ببینید وقتی هیچ افزونه پارسی سازی رو وردپرس شما نصب نباشه، افزونه به درستی کار میکنه، اگر هر کدوم از افزونههای پارسی ساز رو نصب کنید(فرقی نمیکنه پارسی دیت یا جلالی) افزونه به جای نشون دادن تاریخ درست، روز و ساعت و دقیقه و ثانیه رو همگی رو صفر نشون میده و در نتیجه لینک خرید هم غیر فعال میشه، حالا اگر در هنگامی که پارسی دیت نصب هست، کدهایی رو که شما دادید بریزیم تو افزونه(یعنی به جای date بنویسیم parsidate) نمایش تاریخ به این صورت میشه:NaN روز و NaN ساعت و NaN دقیقه و NaN ثانیهمن مدت زیادیه دارم برای اصلاح این مشکل تلاش میکنم اما جواب نمیگیرم، فک میکنم یکی دیگه از راههایی که بشه این مشکل رو برطرف کرد این باشه که کاری کنیم که افزونههای پارسی ساز روی قسمت انتخابگر زمان فروش ویژه ووکامرس عمل نکنن و اون قسمت خاص به صورت میلادی باقی بمونه و به صورت میلادی هم در دیتابیس ذخیره بشه. من قسمتی رو که مربوط میشه به انتخابگر تاریخ فروش ویژه ووکامرس قبلاً پیدا کردم، که در اینجا قرار میدم: // Special Price date range $sale_price_dates_from = ( $date = get_post_meta( $thepostid, '_sale_price_dates_from', true ) ) ? date_i18n( 'Y-m-d', $date ) : ''; $sale_price_dates_to = ( $date = get_post_meta( $thepostid, '_sale_price_dates_to', true ) ) ? date_i18n( 'Y-m-d', $date ) : '';اگر بشه این کد رو طوری تغییر داد که افزونه های پارسی ساز روش عمل نکنن، فک میکنم این مشکل حل بشهشما از هر طریقی بتونید من رو راهنمایی کنید، حالا یاد خود افزونه social deals رو تغییر بدیم یا کد فروش ویژه رو تغییر بدیم من یک دنیا ممنونتون میشم، باور کنید هم به افزونه social deals احتیاج دارم و هم افزونه پارسی دیت و سایتم بدون این دو افزونه فلج هست. نقل قول لینک به ارسال
kootlas 3 ارسال شده در مهر 93 مالک گزارش بازنشر ارسال شده در مهر 93 هوراخودم درستش کردم دو ماه گیر این مشکل بودم اما حلش کردم، چقد حس خوبیه وقتی برنامه نویس نیستی بتونی چنین مشکلاتی رو حل کنی.اینجا هم مینویسم که اگه کس دیگه ای هم این مشکلو داشت یاد بگیرهاول باید یکی از فایل های ووکامرس رو در مسیر wp-content/plugins/woocommerce/includes/admin/meta-boxes/class-wc-meta-box-product-data.php ویرایش کرد، بعد از باز کردن فایل مذکور باید کد: // Special Price date range $sale_price_dates_from = ( $date = get_post_meta( $thepostid, '_sale_price_dates_from', true ) ) ? date_i18n( 'Y-m-d', $date ) : ''; $sale_price_dates_to = ( $date = get_post_meta( $thepostid, '_sale_price_dates_to', true ) ) ? date_i18n( 'Y-m-d', $date ) : '';رو با این کد جایگزین کرد: // Special Price date range $sale_price_dates_from = ( $date = get_post_meta( $thepostid, '_sale_price_dates_from', true ) ) ? date( 'Y-m-d', $date ) : ''; $sale_price_dates_to = ( $date = get_post_meta( $thepostid, '_sale_price_dates_to', true ) ) ? date( 'Y-m-d', $date ) : '';با این کار قسمت انتخابگر فروش ویژه ووکامرس دیگه از تاریخ های شمسی پشتیبانی نمیکنه و این در حالیه که سایر قسمتای ووکامرس همچنان شمسی باقی میموننقدم بعدی باید کاری کنیم که افزونه social deals هم فقط از تاریخ میلادی تبعیت کنهبه این منظور وارد پوشه مسیر wp-content/plugins/woocommerce_wpsocial_deals/includes میشیم و در اونجا تمام فایل های php رو باید ویرایش کنیم و هر چی که date_i18n دیدیم به date تبدیل کنیم.تمام شد. به همین سادگی به همین خوشمزگی نقل قول لینک به ارسال
Amintab2001 3 ارسال شده در مهر 93 گزارش بازنشر ارسال شده در مهر 93 (ویرایش شده) ایت کد ها رو باید به چه صورت تغییر داد؟ return date_i18n('l, jS F Y'); case '{current_time}': case '{submit_time}': return date_i18n('g:i a');بعد فایل jquery.ui.datepicker-fa.jsداره که فقط مشکل با سال دارم باید به چه صورت شمسی بهش اضافه بشه/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */jQuery(function($) {$.datepicker.regional['fa'] = { closeText: 'بستن', prevText: '<قبلی', nextText: 'بعدی>', currentText: 'امروز', monthNames: [ 'فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند' ], monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], dayNames: [ 'يکشنبه', 'دوشنبه', 'سهشنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه' ], dayNamesShort: [ 'ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش' ], dayNamesMin: [ 'ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش' ], weekHeader: 'هف', dateFormat: 'yy/mm/dd', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''};$.datepicker.setDefaults($.datepicker.regional['fa']);}); ویرایش شده مهر 93 توسط Amintab2001 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .