رفتن به مطلب

کمک در تغییر توابع تاریخ


پست های پیشنهاد شده

سلام

من میخوام توابع تاریخ کدهای ضمیمه شده رو از میلادی به شمسی تغییر بدم؛ کسی میتونه کمکم کنه؟


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;
}

ویرایش شده توسط kootlas
لینک به ارسال

اگر در وردپرس هست

افزونه wp-parsidate را نصب کنید

سپس تابع parsidate را در کد جایگزین توابع date , date_i18n کنید

لینک به ارسال

اگر در وردپرس هست

افزونه wp-parsidate را نصب کنید

سپس تابع parsidate را در کد جایگزین توابع date , date_i18n کنید

بله وردپرس هست

میشه بیتشر توضیح بدید؟ یعنی هر جای date_i18n و date دیدم بنویسم $parsidate ؟

مثلاً تو این جمله:


var day='".date('d',$date)."';

اون .date رو باید جایگزین کنم یا اون $date رو؟

لینک به ارسال

توابع رو date برای مثال

$ برای تعریف مغییر هست

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

لینک به ارسال

بسته پارسی ساز را نصب کردید؟

اگر بله

[/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())."';

را در ابتدای کدها تغییر دهید

اگر باز هم مشکل باقی بود دقیقا توضیح بدید کد چه کاری انجام می ده چون به نظرم یک مدت را محاسبه می کنه که در اینصورت شمسی کردنش هم بی دلیله و هم به اینصورت ممکنه تو محاسبه اشتباه کنه

لینک به ارسال

ممنون از پاسختون جناب فخار

بگذارید من یه توضیحی بدم خدمتتون که اصلاً این کد دقیقاً چیکار میکنه و از کجا اومده

این کد بخشی از فایل 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 احتیاج دارم و هم افزونه پارسی دیت و سایتم بدون این دو افزونه فلج هست.

لینک به ارسال

:D هورا

خودم درستش کردم دو ماه گیر این مشکل بودم اما حلش کردم، چقد حس خوبیه وقتی برنامه نویس نیستی بتونی چنین مشکلاتی رو حل کنی.

اینجا هم مینویسم که اگه کس دیگه ای هم این مشکلو داشت یاد بگیره

اول باید یکی از فایل های ووکامرس رو در مسیر 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 تبدیل کنیم.

تمام شد. به همین سادگی به همین خوشمزگی ^_^

لینک به ارسال

ایت کد ها رو باید به چه صورت تغییر داد؟


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']);
});

ویرایش شده توسط Amintab2001
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...