رفتن به مطلب

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


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

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

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

اینم کدش هست


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 :(

لینک به ارسال

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

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

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


// 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
لینک به ارسال

کل کد این هست


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 پست ها و کامنت هایی که بعد از آخرین ورود کاربر آمده نشون میده

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

لینک به ارسال

کل کد این هست


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/

لینک به ارسال

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

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

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

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

ویرایش شده توسط Milad.flight
لینک به ارسال

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


/**
* 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
لینک به ارسال

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

فقط 2تا سوال

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

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

ویرایش شده توسط Milad.flight
لینک به ارسال

1. با افزونه wp-parsidate فقط کار میکنه.

2. مستندات بسته پارسی ساز رو بخونید.

  • امتیاز 1
لینک به ارسال

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

فقط 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 );
}

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

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

شرمنده ها

لینک به ارسال

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

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


</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>

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

لینک به ارسال

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

تو خود افزونه توی 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

لینک به ارسال

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

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


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

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

لینک به ارسال

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


/*آخرین زمان ورود*/
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 ثانیه کمتر نشون میده

لینک به ارسال

لطفا برای ارسال دیدگاه وارد شوید

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



ورود به حساب کاربری
×
×
  • اضافه کردن...