Milad.flight

زمان آخرین ورود کاربر

21 پست در این موضوع قرار دارد

سلام ببخشید من یه کمک میخواستم

توی سایتم تو پروفایل هر کاربر تاریخ آخرین باری که وارد سایت شده رو نشون میده

اینم کدش هست


function your_last_login($login) {
global $user_ID;
$user = get_userdatabylogin($login);
update_usermeta($user->ID, 'last_login', current_time('mysql'));
}
add_action('wp_login','your_last_login');
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = get_option('date_format') . ' ' . get_option('time_format');
$the_last_login = mysql2date($date_format, $last_login, false);
echo $the_last_login;
}
function nd_update_user_meta( $user_id ) {
update_user_meta( $user_id, 'nd_login_time', current_time('timestamp') );
update_user_meta( $user_id, 'nd_num_comments', wp_count_comments()->approved );
update_user_meta( $user_id, 'nd_num_posts', wp_count_posts('post')->publish );
}

اما این کد تاریخ رو به صورت میلادی نشون میده

چیکار باید بکنم تا به صورت شمسی نشون بده؟؟؟؟؟؟؟

دوستان به طور خیلی رسمی Help meeeeeee :(

0

به اشتراک گذاری این پست


لینک به پست

از افزونه جلالی استفاده می‌کنید یا از بسته پارسی‌ساز؟

اگه از بسته پارسی‌ساز استفاده می‌کنید، این برگه رو مطالعه کنید.

فکر کنم چنین چیزی بشه، البته این کد رو تست نکردم:


// previous codes
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = get_option('date_format') . ' ' . get_option('time_format');
$the_last_login = mysql2date($date_format, $last_login, false);
$parsi_date = parsidate( 'Y m d H:i:s', $the_last_login, 'per' );
echo $the_last_login;
}
// next codes

1

به اشتراک گذاری این پست


لینک به پست

از افزونه wp-parsidate استفاده میکنم

من خودم جای mysql2date و mysql

parsidate گذاشتم اما تاریخ روز رو فقط نشون میده نه تاریخ آرین باری که لاگین بوده

0

به اشتراک گذاری این پست


لینک به پست

کدی که به شما دادم، این نتیجه رو داد؟

1

به اشتراک گذاری این پست


لینک به پست

کل کد این هست


function your_last_login($login) {
global $user_ID;
$user = get_userdatabylogin($login);
update_usermeta($user->ID, 'last_login', current_time('jdate'));

}
add_action('wp_login','your_last_login');
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = get_option('date_format') . ' ' . get_option('time_format');
$the_last_login = mysql2date($date_format, $last_login, false);
echo $the_last_login;
}



function nd_update_user_meta( $user_id ) {
update_user_meta( $user_id, 'nd_login_time', current_time('timestamp') );
update_user_meta( $user_id, 'nd_num_comments', wp_count_comments()->approved );
update_user_meta( $user_id, 'nd_num_posts', wp_count_posts('post')->publish );
}

که فاکشن آخری خط اول تاریخ آخرین ورود کاربر رو نشون میده و خط 2 و 3 پست ها و کامنت هایی که بعد از آخرین ورود کاربر آمده نشون میده

حالا کدی رو که دادید جای کدوم کد بذارم؟؟؟

0

به اشتراک گذاری این پست


لینک به پست

به جای فانکشن دومی. از افزونه خاصی برای این کار استفاده می‌کنید؟

1

به اشتراک گذاری این پست


لینک به پست

کل کد این هست


function your_last_login($login) {
global $user_ID;
$user = get_userdatabylogin($login);
update_usermeta($user->ID, 'last_login', current_time('jdate'));

}
add_action('wp_login','your_last_login');
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = get_option('date_format') . ' ' . get_option('time_format');
$the_last_login = mysql2date($date_format, $last_login, false);
echo $the_last_login;
}



function nd_update_user_meta( $user_id ) {
update_user_meta( $user_id, 'nd_login_time', current_time('timestamp') );
update_user_meta( $user_id, 'nd_num_comments', wp_count_comments()->approved );
update_user_meta( $user_id, 'nd_num_posts', wp_count_posts('post')->publish );
}

که فاکشن آخری خط اول تاریخ آخرین ورود کاربر رو نشون میده و خط 2 و 3 پست ها و کامنت هایی که بعد از آخرین ورود کاربر آمده نشون میده

حالا کدی رو که دادید جای کدوم کد بذارم؟؟؟

راستی اون jdate اولی رو خودم گذاشتم درستش mysql هست

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

بله افزونه sb-login هست که فرم لاگین داره و نمایش آخرین ورود کاربر هم تو پروفایلش هست این صفحه افزونه هست

http://wordpress.org/plugins/sb-login/

0

به اشتراک گذاری این پست


لینک به پست

فرقی نداره که با افزونه باشه یا بدون افزونه کلا توی این سایت

http://www.wp-pro.ir/thread2175.html

همین کار رو بدون افزونه کرده که کلا شبیه همین هست اما بازم میلادی هست و شمسی نمیشه :(

کسی میدونه باید چیکار کرد؟

ویرایش شده در توسط Milad.flight
0

به اشتراک گذاری این پست


لینک به پست

یه کد هست خودم نوشتم. اینو ببینید کار میکنه؟ فانکشن آخر یه مثال هست که توی ادمین، زمان آخرین ورود رو نشون میده.


/**
* Sets last login time when an user logins
*
* @param int $user_login User Login Identity
* @param WP_User $user User object
* @return void
*/
function wp_set_user_last_login( $user_login, $user ) {
update_usermeta(
$user->ID,
'wp_last_login',
date( 'Y-m-d H:i:s' )
); // Saves last login time as user metadata
}
add_action( 'wp_login', 'wp_set_user_last_login', 10, 2 ); // Saves data after every login

/**
* Gets last user login
*
* @param int $user_id User identity
* @param bool $parsi_date Convert date to Jalali format (Make sure you do have WP-Parsidate plugin)
* @param string $parsi_date_format Parsi date output format
* @return string|bool Returns formatted date or false, when metadata not found.
*/
function wp_get_user_last_login( $user_id = 1, $parsi_date = true, $parsi_date_format = 'Y/m/d H:i:s' ) {
$last_login_date = get_usermeta( $user_id, 'wp_last_login', true );

if ( $last_login_date != '' ) {
if ( $parsi_date ) {
$bndate = bn_parsidate::getInstance();
$bndate = $bndate->persian_date( $parsi_date_format, $last_login_date, 'per' );
return $bndate;
} else {
return $last_login_date;
}
}
return false;
}

/**
* This is an example for showing how above functions work
*
* @return void
*/
function display_example() {
?>
<div class="updated">
<p>آخرین ورود شما در تاریخ <?php echo wp_get_user_last_login( get_current_user_id() ); ?> است</p>
</div>
<?php
}
add_action( 'admin_notices', 'display_example' );

1

به اشتراک گذاری این پست


لینک به پست

ممنون فقط با گذاشتن فاکشن آخری زمان آخرین ورود رو کجا نشون میده؟؟

0

به اشتراک گذاری این پست


لینک به پست

خب خداروشکر ممنون از زحمتاتون حل شد درست کارکرد خیلی مممنونم

فقط 2تا سوال

حتما باید افزونه جلالی نصب باشه یا با wp-parsidate کار میکنه؟

و دومین سوالم اینه که تابع user_registered که تاریخ عضوت رو نشون میده به میلادی هست چطور میتونم شمسیش کنم؟؟

ویرایش شده در توسط Milad.flight
0

به اشتراک گذاری این پست


لینک به پست

خب خداروشکر ممنون از زحمتاتون حل شد درست کارکرد خیلی مممنونم

فقط 2تا سوال

حتما باید افزونه جلالی نصب باشه یا با wp-parsidate کار میکنه؟

و دومین سوالم اینه که تابع user_registered که تاریخ عضوت رو نشون میده به میلادی هست چطور میتونم شمسیش کنم؟؟

ببخشید یکجاش گیر گردم

تو خود افزونه توی php صفحه پروفایلش که تاریخ آخرین لاگین رو نشون میده به اینصورت درست کرده


function nd_update_user_meta( $user_id ) {
update_user_meta( $user_id, 'nd_login_time', current_time('timestamp') );
update_user_meta( $user_id, 'nd_num_comments', wp_count_comments()->approved );
update_user_meta( $user_id, 'nd_num_posts', wp_count_posts('post')->publish );
}

خط اول مربوط میشه به تاریخ آخرین لاگین

حالا با کد هایی که شما دادید من چطور خط اولش رو درست کنم تا تو پروفایل افزونه تاریخ درست شده با کد شما رو نشون بده؟؟

شرمنده ها

0

به اشتراک گذاری این پست


لینک به پست

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

ببینید کد افزونه برای نمایش تاریخ عضویت اینه


</strong></li>
<li><strong><span style="color:#0176AB;"><?php _e('زمان عضویت شما:', 'sb-login'); ?></span> <?php
$id = get_current_user_id();
echo '' . the_author_meta('user_registered', $id) . '';
?>
</strong></li>

من اومدم به این شکلش کردم اما کار نکرد


</strong></li>
<li><strong><span style="color:#0176AB;"><?php _e('زمان عضویت شما:', 'sb-login'); ?></span> <?php
$id = get_current_user_id();
echo '' . the_author_meta('user_registered', $id) . '';
?>
parsidate('Y m d',$datetime='user_registered',$lang='per')
</strong></li>

باید چیکارش کنم؟

0

به اشتراک گذاری این پست


لینک به پست

ببخشید یکجاش گیر گردم

تو خود افزونه توی php صفحه پروفایلش که تاریخ آخرین لاگین رو نشون میده به اینصورت درست کرده


function nd_update_user_meta( $user_id ) {
update_user_meta( $user_id, 'nd_login_time', current_time('timestamp') );
update_user_meta( $user_id, 'nd_num_comments', wp_count_comments()->approved );
update_user_meta( $user_id, 'nd_num_posts', wp_count_posts('post')->publish );
}

خط اول مربوط میشه به تاریخ آخرین لاگین

حالا با کد هایی که شما دادید من چطور خط اولش رو درست کنم تا تو پروفایل افزونه تاریخ درست شده با کد شما رو نشون بده؟؟

شرمنده ها

همون خط اول رو بکنیدش:


$bndate = bn_parsidate::getInstance();
update_user_meta( $user_id, 'nd_login_time', $bndate->persian_date( 'Y/m/d H:i:s', 'now', 'per' ) );

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

ببینید کد افزونه برای نمایش تاریخ عضویت اینه


</strong></li>
<li><strong><span style="color:#0176AB;"><?php _e('زمان عضویت شما:', 'sb-login'); ?></span> <?php
$id = get_current_user_id();
echo '' . the_author_meta('user_registered', $id) . '';
?>
</strong></li>

من اومدم به این شکلش کردم اما کار نکرد


</strong></li>
<li><strong><span style="color:#0176AB;"><?php _e('زمان عضویت شما:', 'sb-login'); ?></span> <?php
$id = get_current_user_id();
echo '' . the_author_meta('user_registered', $id) . '';
?>
parsidate('Y m d',$datetime='user_registered',$lang='per')
</strong></li>

باید چیکارش کنم؟

مثل همون کد بالایی که دادم بهتون.

ویرایش شده در توسط Ehsaan
1

به اشتراک گذاری این پست


لینک به پست

ببینید من متوجه یه چیز دیگه ای شدم

تو این پلاگین 2تا فایل هست

1-logged-in.php

2-sb-login.php

و تو هر 2تا فایل قسمت های مربوط به تاریخ عضویت و زمان آخرین باری که لاگین شده وجود داره

من نمیدونم کدوم رو باید تغییر بدم هر 2تا فایل رو پیوست میکنم شما تغیرات لازمش رو بی زحمت انجام بدید بهم بدید یا این که بگید کدوم رو باید درست کرنم

http://barf98.ir/123123.zip

0

به اشتراک گذاری این پست


لینک به پست

دوست عزیز اسپم ارسال نکنید و منتظر باشید

همون کد خودتون رو به این صورت استفاده کنید :


function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = the_time('l, F jS, Y');
$the_last_login = mysql2date($date_format, $last_login, false);
echo $the_last_login;
}

1

به اشتراک گذاری این پست


لینک به پست

دوست عزیز اسپم ارسال نکنید و منتظر باشید

همون کد خودتون رو به این صورت استفاده کنید :


function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = the_time('l, F jS, Y');
$the_last_login = mysql2date($date_format, $last_login, false);
echo $the_last_login;
}

بله چشم ببخشید

0

به اشتراک گذاری این پست


لینک به پست

سلام.دوست عزیز من از این کد استفاده میکنم کاملا درست کار میکنه بدون هیچ اشکالی..فقط از افزونه جلالی استفاده کن..


/*آخرین زمان ورود*/
function your_last_login($login) {
global $user_ID;
$user = get_userdatabylogin($login);
update_usermeta($user->ID, 'last_login', jdate('d M Y ساعت: H:i:s'));
}
add_action('wp_login','your_last_login');
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = jdate('d M Y ساعت: H:i:s') . ' ';
$the_last_login = mysql2date($date_format, $last_login, true);
echo $the_last_login;
}

برای فراخوانی هم از این استفاده کن:


<?php
global $userdata;
get_currentuserinfo();
echo 'آخرین ورود شما :';
get_last_login($userdata->ID);
?>

اگه هم تو ساعت اشکال داشتی این کد رو تو فانکشن قالبت اضافه کن


<?php date_default_timezone_set('Asia/Tehran');?>

ویرایش شده در توسط graphicno
1

به اشتراک گذاری این پست


لینک به پست

سلام.دوست عزیز من از این کد استفاده میکنم کاملا درست کار میکنه بدون هیچ اشکالی..فقط از افزونه جلالی استفاده کن..


/*آخرین زمان ورود*/
function your_last_login($login) {
global $user_ID;
$user = get_userdatabylogin($login);
update_usermeta($user->ID, 'last_login', jdate('d M Y ساعت: H:i:s'));
}
add_action('wp_login','your_last_login');
function get_last_login($user_id) {
$last_login = get_user_meta($user_id, 'last_login', true);
$date_format = jdate('d M Y ساعت: H:i:s') . ' ';
$the_last_login = mysql2date($date_format, $last_login, true);
echo $the_last_login;
}

برای فراخوانی هم از این استفاده کن:


<?php
global $userdata;
get_currentuserinfo();
echo 'آخرین ورود شما :';
get_last_login($userdata->ID);
?>

اگه هم تو ساعت اشکال داشتی این کد رو تو فانکشن قالبت اضافه کن


<?php date_default_timezone_set('Asia/Tehran');?>

ممنون دوست عزیز اما نمیدونم چرا به جای این که تاریخ آخرین ورود رو نشون بده 10 ثانیه قبل از زمان ورود رو نشون میده یعنی اگه مثلا اگه دیروز ساعت 10:50 بیرون رفته باشم بعد فردا وارد بشم تاریخ روز رو با 10 ثانیه کمتر نشون میده

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط needkar.ir
      سلام من پوسته appsettre رو نصب کردم تاوقتی بسته وردپرس فارسی رو نصب نکرده بودم تاریخ ها به میلادی زیر هر پست نمایش داده میشد بعد از نصب این افزونه اگه مطالب رو به زبان انگلیسی بنویسم تاریخ به خورشیدی زیر پست نمایش داده میشه اما اگه به فارسی بنویسم هیچ تاریخی زیر مطلب نمایش داده نمیشه. مشکل از کجاست؟ لطفا راهنمایی کنید
    • توسط sajadszm
      با سلام
      من یک افزونه رو با POEDIT فارسی سازی کردم.داخل اون بخش تاریخ هست که متاسفانه  تاریخ به صورت میلادی هستش.افزونه ی تقویم جلالی هم روی سایت نصبه ولی بازم تاریخ تغییری نکرده.چکار کنم؟
    • توسط pouryamb
      سلام دوستان عزیز
      من دارم قالب سایتم رو با تگ های schema.org هماهنگ میکنم و به یک مشکل بر خوردم. تاریخ مطالب در قالب به صورت شمسی نشون داده میشه و میخوام همینطور بمونه. اما برای اینکه گوگل بتونه تاریخ رو از طریق تگ schema بشناسه، یک meta اضافه کردم و الان مشکلم فقط با این هست که تاریخ رو به صورت شمسی میزنه.
      چطوری میشه تاریخ درون get_the_time('c') رو به میلادی تبدیل کرد؟ با سپاس
    • توسط asemon14
      سلام
      بنده افزونه وردپرس پارسی را نصب دارم
      الان که میام از بخش مدیریت وردپرس در بخش مطالب، نوشته ها را بر حسب تاریخ فیلتر کنم. صفحه سفید ظاهر میشه و صفحه ای بارگزاری نمیشه
      روی چند سایتم هم تست کردم این مشکل هست. فیلتر با تاریخ میلادی مشکلی نداره!!
    • توسط 3ngineer
      سلام دوستان وقت بخیر
      برای نمایش تاریخ در یک خط یک کد پیدا کردم :
      <?php echo jdate('l d F Y'); ?> الان نمیدونم اینو کجا اضافه کنم؟ و اینکه هیچ فراخوانی نیاز نداره؟ یا فایلی؟ 
      (افزونه پارسی دیت هم دارم ولی اون یه تقویم میده که اندازش تقریبا بزرگه.)