mdamda

ایجاد محدودیت برای کاربران

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

سلام به همه دوستان

من یه فایلی رو کد نویسی کردم که برای فعال شدن شماره سریال را میده و کد فعال سازی میخواد. میخوام فرم تو سایت بذرارم که سریال رو بگیر و کد فعال سازی بده. میخواستم راهنماییم کنید که ایا افزونه ای هست که تعداد دفعات گرفتن کد محدود باشه مثلا 3 بار بتونن کد رو بگیرن.

با تشکر

0

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


لینک به پست

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

یک زمینه کاربری بسازید مثلا به نام usercodecount آی دی کاربر را با یک فیلد هیدن بگیرید و به اکشن ارسال کنید و در اکشن این کدها را بگذارید:


<?php
if(isset($_POST['user_id'])) {
$user_id = $_POST['user_id'];
$usercodecount = get_user_meta($user_id, 'usercodecount', true);
if($usercodecount >3) {
$code = '0';
}
elseif($usercodecount >0) {
$usercodecount +=1;
update_user_meta($user_id, 'usercodecount', $usercodecount);
$code = '1';
}
else {
add_user_meta($user_id, 'usercodecount', '1');
$code = '1';
}
if($code == '1') {
// اکشن ساخت کد دوم
}
else {
echo 'کد جدید نمی تواند تولید شود. درخواست شما بیش از ظرفیت مجاز است.';
}
?>

2

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


لینک به پست

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

0

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


لینک به پست

ببخشید این اطلاعات لازم که تو دیتابیس ذخیره بشن ؟

0

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


لینک به پست

بله خوب بهترین محل ذخیره این اطلاعات دیتابیسه

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

2

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


لینک به پست

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

0

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


لینک به پست

باید با تابع برگشتی درگاه بانکی که خریدشون رو تایید می کنه یک متا بسازید و برای لینک دریافت کد را در داخل شرط وجود متا بگذارید تقریبا مشابه کد تایپیک اوله ولی ساده تره چون محاسبه ای نداره کاربر یا متا را داره یا خیر

1

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


لینک به پست

سلام...یه سوال دیگه پیش اومده برام

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

0

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


لینک به پست

کدتون کلا تغییر می کنه و باید بر اساس آرایه بندی نوشته بشه

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


<?php
$usercodecount = get_user_meta($user_id, 'usercodecount');
$usercodecount = $usercodecount['down_name'];
$usercodecount +=1;
?>

down_name نام فایله

1

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


لینک به پست

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

میشه تو ارایه ها جستجو کرد؟

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

0

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


لینک به پست

تو آرایه می شه جستجو کرد ولی این ارایه خاص چیزی برای جستجو نداره نمونه خرویش اینه:


array(
'down1' => '2',
'down2' => '1',
'down3' => '2','
}

که یک طرف هر نتیجه نام فایلیه که برای دانلود گذاشتید و یک طرف یک عدد بین یک تا سه نام ها که ثابتند و اعداد یک تا سه هم که نیازی به جستجو ندارند

سئوال دومتون رو متوجه نشدم کد مگه تو کجا قرار داره؟

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


$user = get_userdata($user_ID);
$name = $user->user_firstname;
$family = $user->user_lastname;
$usercodecount = get_user_meta($user->ID, 'usercodecount');

1

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


لینک به پست

من تو افزونه edd دست بردم و لیست دانلودی که میده رو دستکاری کردم طوری که وقتی لیست دانلود میده اسم فایلی که دانلود شده رو میاره و یک لینک که به فایل کد وصل میشه...میخوام جستجو کنه نام فایلی که طرف روش کلیک کرده تا ببینم ایا تا حال کد گرفته یا نه. اگه نه نام فایلی رو که الان توش هست و به ارایه اضافه کنم.امیدوارم منظورم رسونده باشم. مثل مثال زیر

فایل a رو خریده الان میاد رو لینک فایل a کلیک میکنه میره به فایل b.php. الان باید ببینه تو متا یوزر شخص b هست یا نه اگه هست یوزرایی که تابحال استفاده کرده و کد گرفته رو بهش نشون بده تو جدول اگه نه یه ارایه به متا یوزر شخص اضافه کنم

0

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


لینک به پست

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

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

1

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


لینک به پست

منظور من قسمت meta value هست نه قسمت user_id

0

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


لینک به پست

متوجه نمی شم روشی که من عرض کردم متا ولوی که خواهید داشتید آرایه ای از اعداد یک تا سه است شما می تونید user_query براش بنویسید و با سه تا کوئری سه لیست مختلف از کاربرانی که نرم افزاری را یک بار دانلود کرده اند دو بار یا سه بار تهیه کنید

با تابعی که دادم هم می توانید جدولی را برای کاربر جاری بسازید که وضعیت دانلودهاش را مشخص کنه به چه چیز دیگری نیاز دارید؟

1

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


لینک به پست

واقعا ممنونم واسه پاسخهایی که میدید...حالا اگه کاربر 3 بار رمز گرفت و بعد دوباره رفت محصول رو خرید ایا میشه کاری کرد که دوباره بتونه 3 بار کد بگیره...درباره user_query توضیح مختصری میدید

0

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


لینک به پست

در حالت طبیعی توی بازگشتی درگاهتون متا را با تعداد صفر آپدیت کنید حالا یا قبلا هم خریده یا نه در هر صورت بعد از یکبار پرداخت سه بار اجازه دانلود داره ولی اگر بخواهید مثلا بعد از یک سال گزارش بگیرید که هر کاربر چند بار یک کد را خریده باید آرایه های مرکب بنویسید که کار راحتی هم نیست اگر با کد نویسی آشنایی دارید که هیچ وگرنه پیشنهادش نمی کنم

برای user_query بخونید

http://codex.wordpress.org/Class_Reference/WP_User_Query

و ژنراتورش

http://generatewp.com/wp_user_query/

1

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


لینک به پست

سلام واقعا ممنونم واسه راهنماییهای استادانتون...

اگه بخوام متا یه فایل صفر کنم باید از update_user_meta استفاده کنم...همنطور که تو ارایه ای که واسه هر فایل خودتون بالا مثال زدید میشه مقدار یه کلید صفر کرد با روش update_user_meta.. مثلا کاربر down1 دوباره خرید کرده میشه فقط مقدار این کلید صفر بشه و فایلهای دیگه همون مقدار قبلیشون داشته باشن؟

0

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


لینک به پست

امتحان کنید

بله می شه

1

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


لینک به پست

سلام. من کد رو نوشتم ولی توابعی که واسه وردپرس هستند رو نمیشناسه چطوری باید توابع وردپرس امپورت کنم تو کدم...توابعی مثل get_user_meta , get_current_user_id

0

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


لینک به پست

منظورتون چیه که کدتون تابع را نمی شناسه بیشتر توضیح بدید

1

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


لینک به پست

این اخطار میده موقع که رو لینک دریافت کد کلیک میکنم

Fatal error: Call to undefined function get_current_user_id()

0

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


لینک به پست

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

0

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


لینک به پست


<?php
$filename=basename($_SERVER['SCRIPT_NAME']);
$user_ID = get_current_user_id();
$filename=substr($filename,0,strlen($filename)-4);
$get_code=get_user_meta($user_ID, '_code_count', true);
$code_count=count($get_code[$filename]);
if ($code_count<2 && $code_count>0):?>
<table>
<tr>
<th> سریال </th>
<th> کد قفل گشا </th>
</tr>
<?php foreach ($get_code[$filename] as $serial=>$code):?>
<tr>
<th> <?php echo $serial; ?> </th>
<th> <?php echo $code; ?> </th>
</tr>
<?php endforeach; ?>
</table>

<?php elseif ($code_count>0 && $code_count<3): ?>
<table>
<tr>
<th> سریال </th>
<th> کد قفل گشا </th>
</tr>
<?php foreach ($get_code[$filename] as $serial => $code): ?>
<tr>
<th> <?php echo $serial ; ?> </th>
<th> <?php echo $code ; ?> </th>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
<?php if ($code_count<2 ):?>
<form action="code_abniye_1388.php" method="POST">
serialnumber: <input type="text" name="serial" value="<?php echo $user_ID;?>"/>
<input type="hidden" name="user_id" value=" <?php echo $user_ID; ?>"/>
<input type="hidden" name="filename" value="<?php echo $filename; ?>"/>
<input type="submit" value="دریافت کد"/>
</form>
<?php endif; ?>

0

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


لینک به پست

تست کنید


<?php
global $user_ID;
if(is_user_logged_in()) :
$filename=basename($_SERVER['SCRIPT_NAME']);
$filename=substr($filename,0,strlen($filename)-4);
$get_code=get_user_meta($user_ID, '_code_count', true);
$code_count=count($get_code[$filename]);
if ($code_count<2 && $code_count>0):?>
<table>
<tr>
<th> سریال </th>
<th> کد قفل گشا </th>
</tr>
<?php foreach ($get_code[$filename] as $serial=>$code):?>
<tr>
<th> <?php echo $serial; ?> </th>
<th> <?php echo $code; ?> </th>
</tr>
<?php endforeach; ?>
</table>
<?php elseif ($code_count>0 && $code_count<3): ?>
<table>
<tr>
<th> سریال </th>
<th> کد قفل گشا </th>
</tr>
<?php foreach ($get_code[$filename] as $serial => $code): ?>
<tr>
<th> <?php echo $serial ; ?> </th>
<th> <?php echo $code ; ?> </th>
</tr>
<?php endforeach; ?>
</table>
<?php endif; ?>
<?php if ($code_count<2 ):?>
<form action="code_abniye_1388.php" method="POST">
serialnumber: <input type="text" name="serial" value="<?php echo $user_ID;?>"/>
<input type="hidden" name="user_id" value=" <?php echo $user_ID; ?>"/>
<input type="hidden" name="filename" value="<?php echo $filename; ?>"/>
<input type="submit" value="دریافت کد"/>
</form>
<?php endif; ?>
<?php endif; ?>

1

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


لینک به پست

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

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

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

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


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

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

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


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