رفتن به مطلب

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


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

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

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

اینم کدش هست


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

لینک به ارسال

کل کد این هست


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

لینک به ارسال

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

فقط 2تا سوال

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

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

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

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

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

لینک به ارسال

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

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

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

تو این پلاگین 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;
}

لینک به ارسال

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

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


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

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


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

لینک به ارسال

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

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

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

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

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

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

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

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

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