<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[کلیدستان - سوال و جواب]]></title>
		<link>https://www.kelidestan.com/forum/</link>
		<description><![CDATA[کلیدستان - https://www.kelidestan.com/forum]]></description>
		<pubDate>Wed, 28 Oct 2026 20:27:24 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[جستجوگر خبر]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=19049</link>
			<pubDate>Tue, 07 Dec 2021 05:06:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=3698">dibdab</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=19049</guid>
			<description><![CDATA[<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">سلام دوستان کسی میدونه از چه روشی میتونم مثل سایت خبر فارسی که یک جستجوگر خبر هست و اطلاعات سایت های دیگه رو استخراج می کنه و نمایش میده میتونم استفاده بکنم</span></span></span><br />
<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">اصلا ایده ای توی ذهنم نیست .</span></span></span><br />
<br />
<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">دوستان عزیز اگر کسی در این موضوع اطلاعاتی داره ممنون می شم با ن به اشتراک بزاره</span></span></span>]]></description>
			<content:encoded><![CDATA[<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">سلام دوستان کسی میدونه از چه روشی میتونم مثل سایت خبر فارسی که یک جستجوگر خبر هست و اطلاعات سایت های دیگه رو استخراج می کنه و نمایش میده میتونم استفاده بکنم</span></span></span><br />
<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">اصلا ایده ای توی ذهنم نیست .</span></span></span><br />
<br />
<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">دوستان عزیز اگر کسی در این موضوع اطلاعاتی داره ممنون می شم با ن به اشتراک بزاره</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[وردپرس]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=18120</link>
			<pubDate>Sun, 25 Apr 2021 08:24:19 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=3698">dibdab</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=18120</guid>
			<description><![CDATA[<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">سلام چطور می تونم شماره سفارش رو توی ووکامرس بدست بیارم</span></span></span><br />
<br />
<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">می خوام توی صفحه ای خاص فقط شماره سفارش رو نمایش بدم</span></span></span>]]></description>
			<content:encoded><![CDATA[<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">سلام چطور می تونم شماره سفارش رو توی ووکامرس بدست بیارم</span></span></span><br />
<br />
<span style="color: #333333;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:IranSans, Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;">می خوام توی صفحه ای خاص فقط شماره سفارش رو نمایش بدم</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[تبدیل اسلایدر به ماژول پرستاشاپ]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=16508</link>
			<pubDate>Fri, 27 Dec 2019 15:45:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=11706">hasankhanmohamadi.ps@gmail.com</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=16508</guid>
			<description><![CDATA[سلام دوستان من یک سایت پرستاشاپ دارم که با زبان php نوشته شده حالا یه اسلایدر با اچ تی ام ال و سی اس اس و جاوا نوشتم اینو میخوام تبدیل به ماژول کنم ایا کیسی میتونه راهنمایی کنه؟]]></description>
			<content:encoded><![CDATA[سلام دوستان من یک سایت پرستاشاپ دارم که با زبان php نوشته شده حالا یه اسلایدر با اچ تی ام ال و سی اس اس و جاوا نوشتم اینو میخوام تبدیل به ماژول کنم ایا کیسی میتونه راهنمایی کنه؟]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[چگونه می توان آگهی بنر را در فتوشاپ Adobe ایجاد کرد]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=15549</link>
			<pubDate>Mon, 01 Jul 2019 23:31:12 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=7491">magbot</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=15549</guid>
			<description><![CDATA[<span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: x-small;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-family:samim;">چگونه می توان آگهی بنر را در فتوشاپ Adobe ایجاد کرد</span></span><br />
<a href="http://magbot.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA//" target="_blank" rel="noopener" class="mycode_url">آموزش طراحی سایت</a><br />
 <br />
<br />
<br />
<a href="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86-%D8%A2%DA%AF%D9%87%DB%8C-%D8%A8%D9%86%D8%B1-%D8%B1%D8%A7-%D8%AF%D8%B1-%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE-Adobe-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86-%D8%A2%DA%AF%D9%87%DB%8C-%D8%A8%D9%86%D8%B1-%D8%B1%D8%A7-%D8%AF%D8%B1-%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE-Adobe-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86-%D8%A2%DA%AF%D9%87%DB%8C-%D8%A8%D9%86%D8%B1-%D8%B1%D8%A7-%D8%AF%D8%B1-%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE-Adobe-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF.jpg" width="542" height="542" alt="[Image: %DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB...%D8%AF.jpg]" class="mycode_img" /></span></a></span></span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-family:samim;"><br />
ما ظرف چند دقیقه شما را از طریق فرایند ایجاد یک پرچم آموزش می دهیم.  می توانید از آن برای طراحی بنر تبلیغاتی هر پروژه ای استفاده کنید. <br />
در اینجا شما گام به گام آموزش خواهید یافت که چگونه یک بنر تبلیغاتی زیبا ایجاد کنید. کاملا قادر خواهید بود از این دانش در پروژه های آینده خود استفاده کنید. آماده هستید؟ <br />
<br />
</span></span></span></div>
<span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: x-small;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-family:samim;">مقالات مرتبط</span></span><br />
<a href="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85.jpg" width="348" height="348" alt="[Image: %DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA...%D9%85.jpg]" class="mycode_img" /></span></a><br />
<span style="font-size: x-large;" class="mycode_size"><a href="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-family:samim;">اصول طراحی قالب خبرنامه ایمیلی همراه با مثال</span></span></a></span><br />
<a href="http://magbot.ir//%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive/%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive.jpg" width="348" height="348" alt="[Image: %D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB...onsive.jpg]" class="mycode_img" /></span></a><br />
<span style="font-size: x-large;" class="mycode_size"><a href="http://magbot.ir//%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-family:samim;">مرور کلی نکات طراحی وب سایت Responsive</span></span></a></span><br />
<a href="http://magbot.ir//%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF/%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF.jpg" width="348" height="348" alt="[Image: %D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8...%D8%AF.jpg]" class="mycode_img" /></span></a><br />
<span style="font-size: x-large;" class="mycode_size"><a href="http://magbot.ir//%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-family:samim;">محتوای خود را با شمارنده های CSS سازماندهی کنید</span></span></a></span></span></span>]]></description>
			<content:encoded><![CDATA[<span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: x-small;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-family:samim;">چگونه می توان آگهی بنر را در فتوشاپ Adobe ایجاد کرد</span></span><br />
<a href="http://magbot.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA//" target="_blank" rel="noopener" class="mycode_url">آموزش طراحی سایت</a><br />
 <br />
<br />
<br />
<a href="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86-%D8%A2%DA%AF%D9%87%DB%8C-%D8%A8%D9%86%D8%B1-%D8%B1%D8%A7-%D8%AF%D8%B1-%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE-Adobe-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86-%D8%A2%DA%AF%D9%87%DB%8C-%D8%A8%D9%86%D8%B1-%D8%B1%D8%A7-%D8%AF%D8%B1-%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE-Adobe-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86-%D8%A2%DA%AF%D9%87%DB%8C-%D8%A8%D9%86%D8%B1-%D8%B1%D8%A7-%D8%AF%D8%B1-%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE-Adobe-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D8%B1%D8%AF.jpg" width="542" height="542" alt="[Image: %DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB...%D8%AF.jpg]" class="mycode_img" /></span></a></span></span><br />
<div style="text-align: right;" class="mycode_align"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-family:samim;"><br />
ما ظرف چند دقیقه شما را از طریق فرایند ایجاد یک پرچم آموزش می دهیم.  می توانید از آن برای طراحی بنر تبلیغاتی هر پروژه ای استفاده کنید. <br />
در اینجا شما گام به گام آموزش خواهید یافت که چگونه یک بنر تبلیغاتی زیبا ایجاد کنید. کاملا قادر خواهید بود از این دانش در پروژه های آینده خود استفاده کنید. آماده هستید؟ <br />
<br />
</span></span></span></div>
<span style="color: #1e1e1e;" class="mycode_color"><span style="font-size: x-small;" class="mycode_size"><span style="font-size: xx-large;" class="mycode_size"><span style="font-family:samim;">مقالات مرتبط</span></span><br />
<a href="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85/%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85.jpg" width="348" height="348" alt="[Image: %DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA...%D9%85.jpg]" class="mycode_img" /></span></a><br />
<span style="font-size: x-large;" class="mycode_size"><a href="http://magbot.ir//%DA%86%DA%AF%D9%88%D9%86%D9%87-%DB%8C%DA%A9-%D9%82%D8%A7%D9%84%D8%A8-%D8%AE%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%BE%D8%A7%D8%B3%D8%AE%DA%AF%D9%88-%D8%A8%D8%A7-%D9%BE%D8%B1%D8%B3-%D9%88-%D8%AC%D9%88%D9%87%D8%A7%DB%8C-%D8%B1%D8%B3%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DA%A9%D9%86%DB%8C%D9%85" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-family:samim;">اصول طراحی قالب خبرنامه ایمیلی همراه با مثال</span></span></a></span><br />
<a href="http://magbot.ir//%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive/%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive.jpg" width="348" height="348" alt="[Image: %D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB...onsive.jpg]" class="mycode_img" /></span></a><br />
<span style="font-size: x-large;" class="mycode_size"><a href="http://magbot.ir//%D9%85%D8%B1%D9%88%D8%B1-%DA%A9%D9%84%DB%8C-%D9%86%D9%87%D8%A7%DB%8C%DB%8C-%D9%86%D9%82%D8%A7%D8%B7-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%88%D8%A8-%D8%B3%D8%A7%DB%8C%D8%AA-Responsive" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-family:samim;">مرور کلی نکات طراحی وب سایت Responsive</span></span></a></span><br />
<a href="http://magbot.ir//%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><img src="http://magbot.ir//%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF/%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF.jpg" width="348" height="348" alt="[Image: %D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8...%D8%AF.jpg]" class="mycode_img" /></span></a><br />
<span style="font-size: x-large;" class="mycode_size"><a href="http://magbot.ir//%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%D8%A8%D8%A7-%D8%B4%D9%85%D8%A7%D8%B1%D9%86%D8%AF%D9%87-%D9%87%D8%A7%DB%8C-CSS-%D8%B3%D8%A7%D8%B2%D9%85%D8%A7%D9%86%D8%AF%D9%87%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF" target="_blank" rel="noopener" class="mycode_url"><span style="color: #1e1e1e;" class="mycode_color"><span style="font-family:samim;">محتوای خود را با شمارنده های CSS سازماندهی کنید</span></span></a></span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[انتخاب سطر و ستون موردنظر از خروجی یک select (در PHP و MySQL)]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=14027</link>
			<pubDate>Wed, 22 Aug 2018 08:25:33 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=4336">mortezahbh</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=14027</guid>
			<description><![CDATA[سلام<br />
<br />
میخواستم بپرسم مثلا وقتی یک سلکت انجام میدی و بعنوان مثال با اون سلکت 5 ردیف برمیگردونه<br />
حالا اگه بخوام ردیف 3 رو اول بخونم بعد 5 بعد ...<br />
باید چطوری عمل کنم؟<br />
مثلا مقدار نام سطر دوم رو میخوام:<br />
&#36;row[name]<br />
با این دستور مقدار نام سطر انتخابی رو برمیگردونه<br />
من چطوری سطرش رو هم مشخص کنم؟؟؟]]></description>
			<content:encoded><![CDATA[سلام<br />
<br />
میخواستم بپرسم مثلا وقتی یک سلکت انجام میدی و بعنوان مثال با اون سلکت 5 ردیف برمیگردونه<br />
حالا اگه بخوام ردیف 3 رو اول بخونم بعد 5 بعد ...<br />
باید چطوری عمل کنم؟<br />
مثلا مقدار نام سطر دوم رو میخوام:<br />
&#36;row[name]<br />
با این دستور مقدار نام سطر انتخابی رو برمیگردونه<br />
من چطوری سطرش رو هم مشخص کنم؟؟؟]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[سلام میخواستم بدونم کدی تو php هست که بشه  کد های بین کد رو تو یه متغیر بریزه]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=12930</link>
			<pubDate>Wed, 14 Feb 2018 14:20:41 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=6632">alirezanemati</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=12930</guid>
			<description><![CDATA[سلام میخواستم بدونم کدی تو php هست که بشه  کد های بین کد رو تو یه متغیر بریزه برای مثال<br />
<br />
<br />
&lt;html&gt;<br />
<br />
&lt;body&gt;<br />
<br />
&lt;test&gt;<br />
<br />
<br />
این کد یا هر چیزی که در اینجا نوشته بشه تویه متغیر بره یا تو فایل تکست زخیره بشه<br />
<br />
&lt;test/&gt;<br />
<br />
<br />
&lt;body/&gt;<br />
&lt;html/&gt;]]></description>
			<content:encoded><![CDATA[سلام میخواستم بدونم کدی تو php هست که بشه  کد های بین کد رو تو یه متغیر بریزه برای مثال<br />
<br />
<br />
&lt;html&gt;<br />
<br />
&lt;body&gt;<br />
<br />
&lt;test&gt;<br />
<br />
<br />
این کد یا هر چیزی که در اینجا نوشته بشه تویه متغیر بره یا تو فایل تکست زخیره بشه<br />
<br />
&lt;test/&gt;<br />
<br />
<br />
&lt;body/&gt;<br />
&lt;html/&gt;]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[طراحی سایت های پویا]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=11942</link>
			<pubDate>Mon, 30 Oct 2017 15:32:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=4475">sh369</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=11942</guid>
			<description><![CDATA[طراحی وب سایت اولین و موثر ترین قدم برای رشد کسب و کار<br />
<br />
<br />
تمام وب سایت ما را با توجه به نیاز مشتری طراحی شده و بر اساس تجزیه و تحلیل وب سایت کامل از کسب و کار شما، اطلاعات با ارزش است که به ما اجازه خواهد برای برنامه ریزی یک استراتژی ارتباطی خاص برای دستیابی به اهداف بتن می باشد. احترام به زمان و هزینه از پیش تعیین شده برخوردار است، به عنوان به اعتقاد ما آن کمک حیاتی و پشتیبانی است در طول کار تمام شده است. حرفه ای ما همراه با بهینه سازی فرایند تولید، اجازه می دهد تا ما را به تحقق بخشیدن به وب سایت های سطح مطلق، با قیمت های رقابتی در مقایسه با بازار<br />
<br />
ما در <a href="http://sitecup.ir/" target="_blank" rel="noopener" class="mycode_url">طراحی سایت </a>کاپ فکر می کنم که یک وب سایت است و نه فقط یک کسب و کار و یا یک کسب و کار ویترین فروشگاه، اما وسیله ای برای ارتباط، برای انتقال یک کاربر در یک پیام روشن و فوری، یک ابزار ضروری به کسب و کار خود را به رشد است و ایجاد ارزش. گرافیک، طراحی و تجربه کاربر از یک سایت عناصر ضروری برای رسیدن به این نتیجه هستند. و چرا ما در مراقبت از تصویر از شرکت شما، توجه نه تنها به جنبه زیبایی، بلکه با سایر عوامل به همان اندازه اساسی، مانند دسترسی و قابلیت استفاده، اثربخشی متون توصیفی برخورد متعهد سرعت بارگذاری صفحات، سازگاری متقابل مرورگر و چند دستگاه.<br />
 <br />
 <br />
 مدیریت آسان با سیستم مدیریت محتوا<br />
<br />
<br />
ما می توانیم وب سایت های استاتیک، صفحات فرود و وب سایت های پویا مانند تجارت الکترونیک، پورتال های چند زبانه پیشرفته، برنامه های وب و وبلاگ های تلفن همراه برای شرکت طراحی سایت و حرفه ای ایجاد کنید. هر پروژه است که همیشه با انیمیشن، انتقال، تصاویر و محتوای چند رسانه ای ایجاد موقت غنی شده، به دست آوردن یک نتیجه نهایی منحصر به فرد.<br />
 هر یک از سایت های پویا است یک سیستم مدیریت محتوا است که توسط یک پلت فرم با کنترل پنل است که اجازه می دهد تا شما را به روز رسانی، تغییر و یا آپلود مطالب جدید و صفحات در یک، خرابی ساده و کاملا مستقل نتیجه از بین بردن و هزینه های مدیریت هزینه حکومت .<br />
 <br />
 <br />
 طراحی سایت بصورت واکنشگرا<br />
<br />
<br />
تیم طراحی سایت کاپ تکامل می یابد با وب و با ارتباطات به دنبال روند و جالب ترین اخبار از بازار، مطالعه و آزمایش راه حل های موثر و درخواست آن را بر روی پروژه های مشتریان خود. طراحی پاسخگو انقلابی در رابط وب، آن را به مدت همراه با یک تکنیک توسعه خاص است که اجازه می دهد تا به شما برای ایجاد وب سایت ها و صفحات وب که به طور خودکار به وضوح صفحه نمایش کاربر سازگار است.<br />
 سایت با رابط پاسخگو در واقع به درستی بر روی تلویزیون های هوشمند، رایانه های با صفحه نمایش بزرگ و کوچک نمایش داده شده، بر روی لپ تاپ است، اما همچنین دستگاه های تلفن همراه مانند قرص و گوشی های هوشمند، ساخت تمام محتوای قابل دسترس، ناوبری مایع، سریع و بصری برای انواع متعددی از دستگاه.<br />
 با توجه به افزایش چشمگیر از افرادی که گشت و گذار در تحرک (گوگل می گوید که در سال 2015، ترافیک تلفن همراه رومیزی پیشی گرفته است)، آن را ضروری است که یک سایت است که قادر به جا دادن حتی بهتر از این گستره از نفجترس، و برای این منظور سایت پاسخگو بهترین سرمایه گذاری امکان پذیر است.]]></description>
			<content:encoded><![CDATA[طراحی وب سایت اولین و موثر ترین قدم برای رشد کسب و کار<br />
<br />
<br />
تمام وب سایت ما را با توجه به نیاز مشتری طراحی شده و بر اساس تجزیه و تحلیل وب سایت کامل از کسب و کار شما، اطلاعات با ارزش است که به ما اجازه خواهد برای برنامه ریزی یک استراتژی ارتباطی خاص برای دستیابی به اهداف بتن می باشد. احترام به زمان و هزینه از پیش تعیین شده برخوردار است، به عنوان به اعتقاد ما آن کمک حیاتی و پشتیبانی است در طول کار تمام شده است. حرفه ای ما همراه با بهینه سازی فرایند تولید، اجازه می دهد تا ما را به تحقق بخشیدن به وب سایت های سطح مطلق، با قیمت های رقابتی در مقایسه با بازار<br />
<br />
ما در <a href="http://sitecup.ir/" target="_blank" rel="noopener" class="mycode_url">طراحی سایت </a>کاپ فکر می کنم که یک وب سایت است و نه فقط یک کسب و کار و یا یک کسب و کار ویترین فروشگاه، اما وسیله ای برای ارتباط، برای انتقال یک کاربر در یک پیام روشن و فوری، یک ابزار ضروری به کسب و کار خود را به رشد است و ایجاد ارزش. گرافیک، طراحی و تجربه کاربر از یک سایت عناصر ضروری برای رسیدن به این نتیجه هستند. و چرا ما در مراقبت از تصویر از شرکت شما، توجه نه تنها به جنبه زیبایی، بلکه با سایر عوامل به همان اندازه اساسی، مانند دسترسی و قابلیت استفاده، اثربخشی متون توصیفی برخورد متعهد سرعت بارگذاری صفحات، سازگاری متقابل مرورگر و چند دستگاه.<br />
 <br />
 <br />
 مدیریت آسان با سیستم مدیریت محتوا<br />
<br />
<br />
ما می توانیم وب سایت های استاتیک، صفحات فرود و وب سایت های پویا مانند تجارت الکترونیک، پورتال های چند زبانه پیشرفته، برنامه های وب و وبلاگ های تلفن همراه برای شرکت طراحی سایت و حرفه ای ایجاد کنید. هر پروژه است که همیشه با انیمیشن، انتقال، تصاویر و محتوای چند رسانه ای ایجاد موقت غنی شده، به دست آوردن یک نتیجه نهایی منحصر به فرد.<br />
 هر یک از سایت های پویا است یک سیستم مدیریت محتوا است که توسط یک پلت فرم با کنترل پنل است که اجازه می دهد تا شما را به روز رسانی، تغییر و یا آپلود مطالب جدید و صفحات در یک، خرابی ساده و کاملا مستقل نتیجه از بین بردن و هزینه های مدیریت هزینه حکومت .<br />
 <br />
 <br />
 طراحی سایت بصورت واکنشگرا<br />
<br />
<br />
تیم طراحی سایت کاپ تکامل می یابد با وب و با ارتباطات به دنبال روند و جالب ترین اخبار از بازار، مطالعه و آزمایش راه حل های موثر و درخواست آن را بر روی پروژه های مشتریان خود. طراحی پاسخگو انقلابی در رابط وب، آن را به مدت همراه با یک تکنیک توسعه خاص است که اجازه می دهد تا به شما برای ایجاد وب سایت ها و صفحات وب که به طور خودکار به وضوح صفحه نمایش کاربر سازگار است.<br />
 سایت با رابط پاسخگو در واقع به درستی بر روی تلویزیون های هوشمند، رایانه های با صفحه نمایش بزرگ و کوچک نمایش داده شده، بر روی لپ تاپ است، اما همچنین دستگاه های تلفن همراه مانند قرص و گوشی های هوشمند، ساخت تمام محتوای قابل دسترس، ناوبری مایع، سریع و بصری برای انواع متعددی از دستگاه.<br />
 با توجه به افزایش چشمگیر از افرادی که گشت و گذار در تحرک (گوگل می گوید که در سال 2015، ترافیک تلفن همراه رومیزی پیشی گرفته است)، آن را ضروری است که یک سایت است که قادر به جا دادن حتی بهتر از این گستره از نفجترس، و برای این منظور سایت پاسخگو بهترین سرمایه گذاری امکان پذیر است.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[کار با ajax]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=9796</link>
			<pubDate>Fri, 31 Mar 2017 00:17:13 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=3698">dibdab</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=9796</guid>
			<description><![CDATA[<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">سلام من با استفاده از دستورات jquery و ajax اطلاعاتی رو به صفحه دیگه ای می فرستم و در دیتا بیس ذخیره می کنم </span></span></span><br />
<br />
<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">سوال من اینه از اون صفحه مقصد که به صورت ajax اطلاعات رو فرستادم می تونم باز دستورات jquery و ajax رو اجرا کنم </span></span></span><br />
<br />
<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">مثلا بگم باز اطلاعات دیگه ای بفرستم و بره به صفحه دیگه ؟؟</span></span></span><br />
<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">من امتحان کردم نشد.</span></span></span><br />
<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Code:</div><div class="body"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php <br />
   </span><span style="color: #007700">&#36;.</span><span style="color: #0000BB">ajax</span><span style="color: #007700">({ </span><span style="color: #0000BB"> url</span><span style="color: #007700">:</span><span style="color: #DD0000">'ajax.php'</span><span style="color: #007700">, </span><span style="color: #0000BB">type</span><span style="color: #007700">:</span><span style="color: #DD0000">'POST'</span><span style="color: #007700">, </span><span style="color: #0000BB">data</span><span style="color: #007700">:{</span><span style="color: #0000BB">name</span><span style="color: #007700">:</span><span style="color: #0000BB">name</span><span style="color: #007700">,</span><span style="color: #0000BB">price</span><span style="color: #007700">:</span><span style="color: #0000BB">price</span><span style="color: #007700">} }) <br />
</span><span style="color: #0000BB"></code></div></pre></div></div>]]></description>
			<content:encoded><![CDATA[<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">سلام من با استفاده از دستورات jquery و ajax اطلاعاتی رو به صفحه دیگه ای می فرستم و در دیتا بیس ذخیره می کنم </span></span></span><br />
<br />
<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">سوال من اینه از اون صفحه مقصد که به صورت ajax اطلاعات رو فرستادم می تونم باز دستورات jquery و ajax رو اجرا کنم </span></span></span><br />
<br />
<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">مثلا بگم باز اطلاعات دیگه ای بفرستم و بره به صفحه دیگه ؟؟</span></span></span><br />
<span style="color: #222222;" class="mycode_color"><span style="font-size: small;" class="mycode_size"><span style="font-family:Tahoma, Calibri, Verdana, Geneva, sans-serif;">من امتحان کردم نشد.</span></span></span><br />
<br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Code:</div><div class="body"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php <br />
   </span><span style="color: #007700">&#36;.</span><span style="color: #0000BB">ajax</span><span style="color: #007700">({ </span><span style="color: #0000BB"> url</span><span style="color: #007700">:</span><span style="color: #DD0000">'ajax.php'</span><span style="color: #007700">, </span><span style="color: #0000BB">type</span><span style="color: #007700">:</span><span style="color: #DD0000">'POST'</span><span style="color: #007700">, </span><span style="color: #0000BB">data</span><span style="color: #007700">:{</span><span style="color: #0000BB">name</span><span style="color: #007700">:</span><span style="color: #0000BB">name</span><span style="color: #007700">,</span><span style="color: #0000BB">price</span><span style="color: #007700">:</span><span style="color: #0000BB">price</span><span style="color: #007700">} }) <br />
</span><span style="color: #0000BB"></code></div></pre></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[مشکل ایجاد محدودیت درتعداد دانلود رایگان (PHP)]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=9711</link>
			<pubDate>Mon, 13 Mar 2017 16:03:01 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=1892">isazadeh</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=9711</guid>
			<description><![CDATA[<span style="color: #333333;" class="mycode_color"><span style="font-family:Tahoma, Georgia,;"><span style="font-size: small;" class="mycode_size"><span style="font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;" class="mycode_font">من یک افزونه وردپرسی دارم که مال افزونه Restrict-Content-Pro هست که کار این افزونه محدود کردن تعداد دانلود کاربران هست تنها مشکلی که بااین افزونه دارم این هست که وقتی تعداد محدودیت رومشخص می کنی افزونه به خوبی کارمیکنه وقتی به تعداد 0رسید افزونه شروع به اضافه کردن به سبد خرید میکنه یعنی اگه محصول رایگان باشه براحتی اجازه خرید ودانلود رو میده حالا تغییر یکه من میخوام این هست که وقتی تعداد محدودیت تموم شد به یه صفحه خاص منتقل بشه:</span></span></span></span><br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Code:</div><div class="body"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php<br />
</span><span style="color: #FF8000">/**<br />
 * Plugin Name: Restrict Content Pro - EDD Member Downloads<br />
 * Description: Allow members to download a certain number of items based on their subscription level.<br />
 * Version: 1.0.1<br />
 * Author: Restrict Content Pro Team<br />
 * Text Domain: rcp-edd-member-downloads<br />
 */<br />
<br />
<br />
/**<br />
 * Loads the plugin textdomain.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_textdomain</span><span style="color: #007700">() {<br />
    </span><span style="color: #0000BB">load_plugin_textdomain</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp-edd-member-downloads'</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">, </span><span style="color: #0000BB">dirname</span><span style="color: #007700">( </span><span style="color: #0000BB">plugin_basename</span><span style="color: #007700">( </span><span style="color: #0000BB">__FILE__ </span><span style="color: #007700">) ) . </span><span style="color: #DD0000">'/languages/' </span><span style="color: #007700">);<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'plugins_loaded'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_textdomain' </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Adds the plugin settings form fields to the subscription level form.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_level_fields</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'EDD' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;level</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;allowed </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
    } else {<br />
        </span><span style="color: #0000BB">&#36;existing </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;allowed  </span><span style="color: #007700">= ! empty( </span><span style="color: #0000BB">&#36;existing </span><span style="color: #007700">) ? </span><span style="color: #0000BB">&#36;existing </span><span style="color: #007700">: </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
    }<br />
    </span><span style="color: #0000BB">?&gt;<br />
</span><br />
    &lt;tr class="form-field"&gt;<br />
        &lt;th scope="row" valign="top"&gt;<br />
            &lt;label for="rcp-edd-downloads-allowed"&gt;<span style="color: #0000BB">&lt;?php printf</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'%s Allowed'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">), </span><span style="color: #0000BB">edd_get_label_plural</span><span style="color: #007700">() ); </span><span style="color: #0000BB">?&gt;</span>&lt;/label&gt;<br />
        &lt;/th&gt;<br />
        &lt;td&gt;<br />
            &lt;input type="number" min="0" step="1" id="rcp-edd-downloads-allowed" name="rcp-edd-downloads-allowed" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;allowed </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>" style="width: 60px;"/&gt;<br />
            &lt;p class="description"&gt;<span style="color: #0000BB">&lt;?php printf</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'The number of %s allowed each subscription period.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">), </span><span style="color: #0000BB">strtolower</span><span style="color: #007700">( </span><span style="color: #0000BB">edd_get_label_plural</span><span style="color: #007700">() ) ); </span><span style="color: #0000BB">?&gt;</span>&lt;/p&gt;<br />
        &lt;/td&gt;<br />
    &lt;/tr&gt;<br />
<br />
    <span style="color: #0000BB">&lt;?php<br />
    wp_nonce_field</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce' </span><span style="color: #007700">);<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_add_subscription_form'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_level_fields' </span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edit_subscription_form'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_level_fields' </span><span style="color: #007700">);<br />
<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Saves the subscription level limit settings.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_save_level_limits</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level_id </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args </span><span style="color: #007700">= array() ) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'EDD' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce'</span><span style="color: #007700">] ) || ! </span><span style="color: #0000BB">wp_verify_nonce</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce'</span><span style="color: #007700">], </span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp-edd-downloads-allowed'</span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">delete_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed' </span><span style="color: #007700">);<br />
        return;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp-edd-downloads-allowed'</span><span style="color: #007700">] ) );<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_add_subscription'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_save_level_limits'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edit_subscription_level'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_save_level_limits'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Determines if the member is at the product submission limit.<br />
 *<br />
 * @param int &#36;user_id ID of the user to check, or 0 for current user.<br />
 *<br />
 * @since  1.0<br />
 * @return bool True if the user is at the limit, false if not.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_member_at_limit</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_get_subscription_id' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">rcp_edd_member_downloads_number_remaining</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">);<br />
    </span><span style="color: #0000BB">&#36;at_limit  </span><span style="color: #007700">= ( </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0 </span><span style="color: #007700">) ? </span><span style="color: #0000BB">false </span><span style="color: #007700">: </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />
<br />
    return </span><span style="color: #0000BB">&#36;at_limit</span><span style="color: #007700">;<br />
}<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Get the number of downloads remaining for a user.<br />
 *<br />
 * @param int &#36;user_id ID of the user to check, or 0 for current user.<br />
 *<br />
 * @since  1.0.1<br />
 * @return int|false Number of downloads available.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_number_remaining</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_get_subscription_id' </span><span style="color: #007700">) ) {<br />
        return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
<br />
    </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">= </span><span style="color: #0000BB">rcp_get_subscription_id</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">);<br />
<br />
    if ( </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">) {<br />
        </span><span style="color: #0000BB">&#36;max       </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;sub_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;current   </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">get_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">- </span><span style="color: #0000BB">&#36;current</span><span style="color: #007700">;<br />
    }<br />
<br />
    if ( </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
        </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
    }<br />
<br />
    return </span><span style="color: #0000BB">&#36;remaining</span><span style="color: #007700">;<br />
<br />
}<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Displays the number of downloads the current user has remaining in this period.<br />
 *<br />
 * @param array  &#36;atts    Shortcode attributes.<br />
 * @param string &#36;content Shortcode content.<br />
 *<br />
 * @since  1.0.1<br />
 * @return int|false<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_remaining_shortcode</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;atts</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;content </span><span style="color: #007700">= </span><span style="color: #0000BB">null </span><span style="color: #007700">) {<br />
    return </span><span style="color: #0000BB">rcp_edd_member_downloads_number_remaining</span><span style="color: #007700">();<br />
}<br />
<br />
</span><span style="color: #0000BB">add_shortcode</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edd_member_downloads_remaining'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_remaining_shortcode' </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Resets a vendor's product submission count when making a new payment.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_reset_limit</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_id</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args </span><span style="color: #007700">= array(), </span><span style="color: #0000BB">&#36;amount </span><span style="color: #007700">) {<br />
<br />
    if ( ! empty( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">delete_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">], </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count' </span><span style="color: #007700">);<br />
    }<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_insert_payment'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_reset_limit'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">3 </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Determines if a user has a membership that allows downloads.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_user_has_download_membership</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) {<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;member </span><span style="color: #007700">= new </span><span style="color: #0000BB">RCP_Member</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">);<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( ! </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;member</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_subscription_id</span><span style="color: #007700">() ) {<br />
        return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
    }<br />
<br />
    if ( </span><span style="color: #0000BB">&#36;member</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">is_expired</span><span style="color: #007700">() || </span><span style="color: #DD0000">'pending' </span><span style="color: #007700">=== </span><span style="color: #0000BB">&#36;member</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_status</span><span style="color: #007700">() ) {<br />
        return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;sub_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
    if ( ! empty( </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">) &amp;&amp; </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
        return </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />
    }<br />
<br />
    return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
}<br />
<br />
<br />
function </span><span style="color: #0000BB">rcp_edd_member_downloads_download_button</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">is_user_logged_in</span><span style="color: #007700">() ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// @todo support bundles<br />
    </span><span style="color: #007700">if ( </span><span style="color: #0000BB">edd_is_bundled_product</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] ) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// @todo maybe support variable prices<br />
    </span><span style="color: #007700">if ( </span><span style="color: #0000BB">edd_has_variable_prices</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] ) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check to see if the product has files<br />
    </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] );<br />
    if ( empty( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check if the member has a membership that allows downloads<br />
    </span><span style="color: #0000BB">&#36;user </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">();<br />
    if ( ! </span><span style="color: #0000BB">rcp_edd_member_downloads_user_has_download_membership</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check if the member is at the download limit<br />
    </span><span style="color: #007700">if ( </span><span style="color: #0000BB">rcp_edd_member_downloads_member_at_limit</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">) &amp;&amp; ! </span><span style="color: #0000BB">edd_has_user_purchased</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] ) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">;<br />
<br />
    </span><span style="color: #0000BB">&#36;download </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Download</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] );<br />
<br />
    if ( isset( </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">[ </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">[ </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">]++;<br />
    } else {<br />
        </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">[ </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">] = </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />
    }<br />
</span><span style="color: #0000BB">?&gt;<br />
</span>    &lt;script type="text/javascript"&gt;<br />
        (function(&#36;) {<br />
            &#36;(document).ready(function() {<br />
                &#36;('.rcp-edd-member-download-request').on('click', function(e) {<br />
                    e.preventDefault();<br />
                    e.stopImmediatePropagation();<br />
                    var item = &#36;(this).parent().find("input[name='rcp-edd-member-download-request']").val();<br />
                    var data = {<br />
                        action: 'rcp-edd-member-download-request',<br />
                        security: &#36;('#rcp-edd-member-download-nonce').val(),<br />
                        item: item<br />
                    }<br />
<br />
                    &#36;.ajax({<br />
                        data: data,<br />
                        type: "POST",<br />
                        dataType: "json",<br />
                        url: edd_scripts.ajaxurl,<br />
                        success: function (response) {<br />
                            if ( response.file &amp;&amp; response.file.length &gt; 0 ) {<br />
                                window.location.replace(response.file);<br />
                            }<br />
                        },<br />
                        error: function (response) {<br />
                            console.log('error ' + response);<br />
                        }<br />
                    });<br />
                });<br />
            });<br />
        })(jQuery);<br />
    &lt;/script&gt;<br />
<br />
<span style="color: #0000BB">&lt;?php<br />
    &#36;form_id      </span><span style="color: #007700">= ! empty( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'form_id'</span><span style="color: #007700">] ) ? </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'form_id'</span><span style="color: #007700">] : </span><span style="color: #DD0000">'edd_purchase_' </span><span style="color: #007700">. </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    </span><span style="color: #0000BB">&#36;button_color </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_option</span><span style="color: #007700">( </span><span style="color: #DD0000">'checkout_color'</span><span style="color: #007700">, </span><span style="color: #DD0000">'blue' </span><span style="color: #007700">);<br />
    </span><span style="color: #0000BB">ob_start</span><span style="color: #007700">();<br />
</span><span style="color: #0000BB">?&gt;<br />
</span>    &lt;form id="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">&#36;form_id</span><span style="color: #007700">; </span><span style="color: #0000BB">?&gt;</span>" class="edd_download_purchase_form edd_purchase_<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>" method="post"&gt;<br />
        &lt;input type="hidden" name="download_id" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">esc_attr</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
        &lt;input type="hidden" name="rcp-edd-member-download-request" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">esc_attr</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
        &lt;input type="hidden" id="rcp-edd-member-download-nonce" name="rcp-edd-member-download-nonce" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">wp_create_nonce</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp-edd-member-download-nonce' </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
        &lt;input type="submit" class="rcp-edd-member-download-request button edd-submit <span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">esc_attr</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;button_color </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>" value="<span style="color: #0000BB">&lt;?php esc_html_e</span><span style="color: #007700">( </span><span style="color: #DD0000">'Download'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
    &lt;/form&gt;<br />
<span style="color: #0000BB">&lt;?php<br />
    </span><span style="color: #007700">return </span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br />
<br />
}<br />
</span><span style="color: #0000BB">add_filter</span><span style="color: #007700">( </span><span style="color: #DD0000">'edd_purchase_download_form'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_download_button'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">);<br />
<br />
<br />
function </span><span style="color: #0000BB">rcp_edd_member_downloads_process_ajax_download</span><span style="color: #007700">() {<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    </span><span style="color: #0000BB">check_ajax_referer</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp-edd-member-download-nonce'</span><span style="color: #007700">, </span><span style="color: #DD0000">'security' </span><span style="color: #007700">);<br />
<br />
    if ( ! </span><span style="color: #0000BB">is_user_logged_in</span><span style="color: #007700">() ) {<br />
        </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check if the member has a membership that allows downloads<br />
    </span><span style="color: #0000BB">&#36;user </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">();<br />
    if ( ! </span><span style="color: #0000BB">rcp_edd_member_downloads_user_has_download_membership</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />
    }<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'item'</span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />
    } else {<br />
        </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">= </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'item'</span><span style="color: #007700">] );<br />
    }<br />
<br />
    if ( </span><span style="color: #0000BB">edd_has_user_purchased</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">) ) {<br />
<br />
        </span><span style="color: #0000BB">&#36;payment_args </span><span style="color: #007700">= array(<br />
            </span><span style="color: #DD0000">'number' </span><span style="color: #0000BB">  </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'status' </span><span style="color: #0000BB">  </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'publish'</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'user' </span><span style="color: #0000BB">    </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'download' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;item</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'meta_key' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'_rcp_edd_member_downloads'<br />
        </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;payments </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Payments_Query</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_args </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;payment  </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;payments</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_payments</span><span style="color: #007700">();<br />
<br />
        if ( ! </span><span style="color: #0000BB">&#36;payment </span><span style="color: #007700">) {<br />
            unset(</span><span style="color: #0000BB">&#36;payment_args</span><span style="color: #007700">[</span><span style="color: #DD0000">'meta_key'</span><span style="color: #007700">] );<br />
            </span><span style="color: #0000BB">&#36;payments </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Payments_Query</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_args </span><span style="color: #007700">);<br />
            </span><span style="color: #0000BB">&#36;payment  </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;payments</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_payments</span><span style="color: #007700">();<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;payment_meta </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_payment_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;files        </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_details'</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] );<br />
<br />
        if ( ! empty( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">) ) {<br />
            </span><span style="color: #0000BB">&#36;file_keys </span><span style="color: #007700">= </span><span style="color: #0000BB">array_keys</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">);<br />
            </span><span style="color: #0000BB">&#36;url       </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_file_url</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_info'</span><span style="color: #007700">][</span><span style="color: #DD0000">'email'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;file_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_details'</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] );<br />
        } else {<br />
<br />
            </span><span style="color: #0000BB">&#36;files    </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
            </span><span style="color: #0000BB">&#36;file_key </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
<br />
            foreach ( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_details'</span><span style="color: #007700">] as </span><span style="color: #0000BB">&#36;key </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;cart_item </span><span style="color: #007700">) {<br />
                if ( </span><span style="color: #0000BB">&#36;cart_item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] === </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">) {<br />
                    </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;cart_item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] );<br />
                    </span><span style="color: #0000BB">&#36;file_key </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;key</span><span style="color: #007700">;<br />
                    break;<br />
                }<br />
            }<br />
<br />
            if ( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">&#36;file_key </span><span style="color: #007700">) {<br />
                </span><span style="color: #0000BB">&#36;file_keys </span><span style="color: #007700">= </span><span style="color: #0000BB">array_keys</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">);<br />
                </span><span style="color: #0000BB">&#36;url       </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_file_url</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_info'</span><span style="color: #007700">][</span><span style="color: #DD0000">'email'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;file_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;key</span><span style="color: #007700">] );<br />
            }<br />
        }<br />
<br />
    } else {<br />
<br />
        </span><span style="color: #0000BB">remove_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'edd_complete_purchase'</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_trigger_purchase_receipt'</span><span style="color: #007700">, </span><span style="color: #0000BB">999 </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">= </span><span style="color: #0000BB">rcp_get_subscription_id</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">);<br />
<br />
        if ( ! </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">) {<br />
            </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'You do not have a membership.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;sub_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
        if ( empty( </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">) ) {<br />
            </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'You must have a valid membership.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;current </span><span style="color: #007700">= </span><span style="color: #0000BB">get_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
        if ( </span><span style="color: #0000BB">&#36;current </span><span style="color: #007700">&gt;= </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">) {<br />
            </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'You have reached the limit defined by your membership.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;payment </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Payment</span><span style="color: #007700">();<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add_download</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;item</span><span style="color: #007700">, array( </span><span style="color: #DD0000">'item_price' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">0.00 </span><span style="color: #007700">) );<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">email      </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_email</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">first_name </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">first_name</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">last_name  </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">last_name</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_id    </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_info  </span><span style="color: #007700">= array(<br />
            </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">first_name</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'last_name' </span><span style="color: #0000BB"> </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">last_name</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'email' </span><span style="color: #0000BB">     </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_email</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'id' </span><span style="color: #0000BB">        </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID<br />
        </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">gateway </span><span style="color: #007700">= </span><span style="color: #DD0000">'manual'</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">status  </span><span style="color: #007700">= </span><span style="color: #DD0000">'pending'</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">save</span><span style="color: #007700">();<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">status  </span><span style="color: #007700">= </span><span style="color: #DD0000">'complete'</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">save</span><span style="color: #007700">();<br />
<br />
        </span><span style="color: #FF8000">// Add a piece of meta to the payment letting us know it was created by this plugin. We query using this meta for future checks.<br />
        </span><span style="color: #0000BB">edd_update_payment_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #DD0000">'_rcp_edd_member_downloads'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">edd_insert_payment_note</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'Downloaded with RCP membership'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
<br />
        </span><span style="color: #0000BB">&#36;payment_meta </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_payment_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;files        </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;file_keys    </span><span style="color: #007700">= </span><span style="color: #0000BB">array_keys</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;url          </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_file_url</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_email</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;file_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;current</span><span style="color: #007700">++;<br />
        </span><span style="color: #0000BB">update_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count'</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;current </span><span style="color: #007700">);<br />
    }<br />
<br />
    </span><span style="color: #0000BB">wp_send_json</span><span style="color: #007700">( array(<br />
        </span><span style="color: #DD0000">'files' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;files</span><span style="color: #007700">,<br />
        </span><span style="color: #DD0000">'file' </span><span style="color: #0000BB"> </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;url<br />
    </span><span style="color: #007700">) );<br />
<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'wp_ajax_rcp-edd-member-download-request'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_process_ajax_download' </span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'wp_ajax_nopriv_rcp-edd-member-download-request'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_process_ajax_download' </span><span style="color: #007700">); <br />
</span><span style="color: #0000BB"></code></div></pre></div></div><br /><!-- start: postbit_attachments_attachment -->
<div class="w3-row w3-container" style="margin-top:20px; margin-bottom:10px;"><!-- w3-row (start) -->  
        <header class="w3-container w3-teal w3-card-4">
            <h2 style="color:#FFF; font-size:15px; padding:10px; margin:0px; direction:rtl;">
               دانلود rcp-edd-member-downloads.zip  
            </h2>
        </header> 
        <div class="w3-col m12 w3-container w3-white k-all-blocks w3-card-4"> 
			

				<style>

			td.attachrow        {font: normal 11px Tahoma;}
			td.attachheader     {font: normal 11px Tahoma; background-color: #ededed; }
			table.attachtable    {font: normal 12px Tahoma;border-collapse : collapse; }

			</style>
				<style>

			td.attachrow        {font: normal 11px Tahoma;}
			td.attachheader     {font: normal 11px Tahoma; background-color: #ededed; }
			table.attachtable    {font: normal 12px Tahoma;border-collapse : collapse; }

			</style>
				<style>
			<!--
			table.attachtable    {font: normal 12px Tahoma;border-collapse : collapse; }
			td.attachheader     {font: normal 11px Tahoma; background-color: #ededed; }
			td.attachrow        {font: normal 11px Tahoma;}
			-->
			</style>


				<table border="0" cellpadding="0" cellspacing="3">
			<!-----Postbit_Attachment---->
				</table>
				<table class="attachtable" id="table2" width="95%" align="center" border="1" cellpadding="2" cellspacing="0">

					<tr>
						<td class="attachrow" width="15%"><span class="genmed">نام فایل</span></td>
						<td class="attachrow" width="75%"><span class="genmed">rcp-edd-member-downloads.zip</span></td>
						<td rowspan="5" class="attachrow" width="20%" align="center">
						<a href="attachment.php?aid=1952">
						<img src="kdevelop_down.png" alt="" border="0"></a><br>
					</tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">نوع فایل</span></td>
						<td class="attachrow" width="75%">
						<!-- start: attachment_icon -->
<img src="https://www.kelidestan.com/forum/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon --></td>

			</td>        </tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">دفعات دانلود</span></td>
						<td class="attachrow" width="75%"><span class="genmed">185</span></td>
					</tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">اندازه</span></td>
						<td class="attachrow" width="75%">3.42 KB</td>
					</tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">ارسال کننده فایل</span></td>
						<td class="attachrow" width="75%">
						<a href="https://www.kelidestan.com/forum/member.php?action=profile&amp;uid=1892"></a></td>

			</td>        </tr>
				</table>


    </div>
</div><!-- w3-row (end) -->
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="color: #333333;" class="mycode_color"><span style="font-family:Tahoma, Georgia,;"><span style="font-size: small;" class="mycode_size"><span style="font-family: Tahoma, Verdana, Arial, Calibri, Geneva, sans-serif;" class="mycode_font">من یک افزونه وردپرسی دارم که مال افزونه Restrict-Content-Pro هست که کار این افزونه محدود کردن تعداد دانلود کاربران هست تنها مشکلی که بااین افزونه دارم این هست که وقتی تعداد محدودیت رومشخص می کنی افزونه به خوبی کارمیکنه وقتی به تعداد 0رسید افزونه شروع به اضافه کردن به سبد خرید میکنه یعنی اگه محصول رایگان باشه براحتی اجازه خرید ودانلود رو میده حالا تغییر یکه من میخوام این هست که وقتی تعداد محدودیت تموم شد به یه صفحه خاص منتقل بشه:</span></span></span></span><br />
<br />
<div class="codeblock phpcodeblock"><div class="title">PHP Code:</div><div class="body"><pre><code style="color: #000000"><span style="color: #0000BB">&lt;?php<br />
</span><span style="color: #FF8000">/**<br />
 * Plugin Name: Restrict Content Pro - EDD Member Downloads<br />
 * Description: Allow members to download a certain number of items based on their subscription level.<br />
 * Version: 1.0.1<br />
 * Author: Restrict Content Pro Team<br />
 * Text Domain: rcp-edd-member-downloads<br />
 */<br />
<br />
<br />
/**<br />
 * Loads the plugin textdomain.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_textdomain</span><span style="color: #007700">() {<br />
    </span><span style="color: #0000BB">load_plugin_textdomain</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp-edd-member-downloads'</span><span style="color: #007700">, </span><span style="color: #0000BB">false</span><span style="color: #007700">, </span><span style="color: #0000BB">dirname</span><span style="color: #007700">( </span><span style="color: #0000BB">plugin_basename</span><span style="color: #007700">( </span><span style="color: #0000BB">__FILE__ </span><span style="color: #007700">) ) . </span><span style="color: #DD0000">'/languages/' </span><span style="color: #007700">);<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'plugins_loaded'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_textdomain' </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Adds the plugin settings form fields to the subscription level form.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_level_fields</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'EDD' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;level</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;allowed </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
    } else {<br />
        </span><span style="color: #0000BB">&#36;existing </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;allowed  </span><span style="color: #007700">= ! empty( </span><span style="color: #0000BB">&#36;existing </span><span style="color: #007700">) ? </span><span style="color: #0000BB">&#36;existing </span><span style="color: #007700">: </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
    }<br />
    </span><span style="color: #0000BB">?&gt;<br />
</span><br />
    &lt;tr class="form-field"&gt;<br />
        &lt;th scope="row" valign="top"&gt;<br />
            &lt;label for="rcp-edd-downloads-allowed"&gt;<span style="color: #0000BB">&lt;?php printf</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'%s Allowed'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">), </span><span style="color: #0000BB">edd_get_label_plural</span><span style="color: #007700">() ); </span><span style="color: #0000BB">?&gt;</span>&lt;/label&gt;<br />
        &lt;/th&gt;<br />
        &lt;td&gt;<br />
            &lt;input type="number" min="0" step="1" id="rcp-edd-downloads-allowed" name="rcp-edd-downloads-allowed" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;allowed </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>" style="width: 60px;"/&gt;<br />
            &lt;p class="description"&gt;<span style="color: #0000BB">&lt;?php printf</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'The number of %s allowed each subscription period.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">), </span><span style="color: #0000BB">strtolower</span><span style="color: #007700">( </span><span style="color: #0000BB">edd_get_label_plural</span><span style="color: #007700">() ) ); </span><span style="color: #0000BB">?&gt;</span>&lt;/p&gt;<br />
        &lt;/td&gt;<br />
    &lt;/tr&gt;<br />
<br />
    <span style="color: #0000BB">&lt;?php<br />
    wp_nonce_field</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce' </span><span style="color: #007700">);<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_add_subscription_form'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_level_fields' </span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edit_subscription_form'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_level_fields' </span><span style="color: #007700">);<br />
<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Saves the subscription level limit settings.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_save_level_limits</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level_id </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args </span><span style="color: #007700">= array() ) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'EDD' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce'</span><span style="color: #007700">] ) || ! </span><span style="color: #0000BB">wp_verify_nonce</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce'</span><span style="color: #007700">], </span><span style="color: #DD0000">'rcp_edd_downloads_allowed_nonce' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp-edd-downloads-allowed'</span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">delete_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed' </span><span style="color: #007700">);<br />
        return;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">update_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;level_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'rcp-edd-downloads-allowed'</span><span style="color: #007700">] ) );<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_add_subscription'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_save_level_limits'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edit_subscription_level'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_save_level_limits'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Determines if the member is at the product submission limit.<br />
 *<br />
 * @param int &#36;user_id ID of the user to check, or 0 for current user.<br />
 *<br />
 * @since  1.0<br />
 * @return bool True if the user is at the limit, false if not.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_member_at_limit</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_get_subscription_id' </span><span style="color: #007700">) ) {<br />
        return;<br />
    }<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">rcp_edd_member_downloads_number_remaining</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">);<br />
    </span><span style="color: #0000BB">&#36;at_limit  </span><span style="color: #007700">= ( </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0 </span><span style="color: #007700">) ? </span><span style="color: #0000BB">false </span><span style="color: #007700">: </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />
<br />
    return </span><span style="color: #0000BB">&#36;at_limit</span><span style="color: #007700">;<br />
}<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Get the number of downloads remaining for a user.<br />
 *<br />
 * @param int &#36;user_id ID of the user to check, or 0 for current user.<br />
 *<br />
 * @since  1.0.1<br />
 * @return int|false Number of downloads available.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_number_remaining</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">function_exists</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_get_subscription_id' </span><span style="color: #007700">) ) {<br />
        return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
<br />
    </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">= </span><span style="color: #0000BB">rcp_get_subscription_id</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">);<br />
<br />
    if ( </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">) {<br />
        </span><span style="color: #0000BB">&#36;max       </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;sub_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;current   </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">get_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">- </span><span style="color: #0000BB">&#36;current</span><span style="color: #007700">;<br />
    }<br />
<br />
    if ( </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">&lt; </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
        </span><span style="color: #0000BB">&#36;remaining </span><span style="color: #007700">= </span><span style="color: #0000BB">0</span><span style="color: #007700">;<br />
    }<br />
<br />
    return </span><span style="color: #0000BB">&#36;remaining</span><span style="color: #007700">;<br />
<br />
}<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Displays the number of downloads the current user has remaining in this period.<br />
 *<br />
 * @param array  &#36;atts    Shortcode attributes.<br />
 * @param string &#36;content Shortcode content.<br />
 *<br />
 * @since  1.0.1<br />
 * @return int|false<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_remaining_shortcode</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;atts</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;content </span><span style="color: #007700">= </span><span style="color: #0000BB">null </span><span style="color: #007700">) {<br />
    return </span><span style="color: #0000BB">rcp_edd_member_downloads_number_remaining</span><span style="color: #007700">();<br />
}<br />
<br />
</span><span style="color: #0000BB">add_shortcode</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_edd_member_downloads_remaining'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_remaining_shortcode' </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Resets a vendor's product submission count when making a new payment.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_reset_limit</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_id</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args </span><span style="color: #007700">= array(), </span><span style="color: #0000BB">&#36;amount </span><span style="color: #007700">) {<br />
<br />
    if ( ! empty( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">delete_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_id'</span><span style="color: #007700">], </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count' </span><span style="color: #007700">);<br />
    }<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp_insert_payment'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_reset_limit'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">3 </span><span style="color: #007700">);<br />
<br />
<br />
</span><span style="color: #FF8000">/**<br />
 * Determines if a user has a membership that allows downloads.<br />
 */<br />
</span><span style="color: #007700">function </span><span style="color: #0000BB">rcp_edd_member_downloads_user_has_download_membership</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) {<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">()-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;member </span><span style="color: #007700">= new </span><span style="color: #0000BB">RCP_Member</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user_id </span><span style="color: #007700">);<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    if ( ! </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;member</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_subscription_id</span><span style="color: #007700">() ) {<br />
        return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
    }<br />
<br />
    if ( </span><span style="color: #0000BB">&#36;member</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">is_expired</span><span style="color: #007700">() || </span><span style="color: #DD0000">'pending' </span><span style="color: #007700">=== </span><span style="color: #0000BB">&#36;member</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_status</span><span style="color: #007700">() ) {<br />
        return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;sub_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
    if ( ! empty( </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">) &amp;&amp; </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">&gt; </span><span style="color: #0000BB">0 </span><span style="color: #007700">) {<br />
        return </span><span style="color: #0000BB">true</span><span style="color: #007700">;<br />
    }<br />
<br />
    return </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
}<br />
<br />
<br />
function </span><span style="color: #0000BB">rcp_edd_member_downloads_download_button</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args </span><span style="color: #007700">) {<br />
<br />
    if ( ! </span><span style="color: #0000BB">is_user_logged_in</span><span style="color: #007700">() ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// @todo support bundles<br />
    </span><span style="color: #007700">if ( </span><span style="color: #0000BB">edd_is_bundled_product</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] ) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// @todo maybe support variable prices<br />
    </span><span style="color: #007700">if ( </span><span style="color: #0000BB">edd_has_variable_prices</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] ) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check to see if the product has files<br />
    </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] );<br />
    if ( empty( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check if the member has a membership that allows downloads<br />
    </span><span style="color: #0000BB">&#36;user </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">();<br />
    if ( ! </span><span style="color: #0000BB">rcp_edd_member_downloads_user_has_download_membership</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check if the member is at the download limit<br />
    </span><span style="color: #007700">if ( </span><span style="color: #0000BB">rcp_edd_member_downloads_member_at_limit</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">) &amp;&amp; ! </span><span style="color: #0000BB">edd_has_user_purchased</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] ) ) {<br />
        return </span><span style="color: #0000BB">&#36;purchase_form</span><span style="color: #007700">;<br />
    }<br />
<br />
    global </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">;<br />
<br />
    </span><span style="color: #0000BB">&#36;download </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Download</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'download_id'</span><span style="color: #007700">] );<br />
<br />
    if ( isset( </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">[ </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">[ </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">]++;<br />
    } else {<br />
        </span><span style="color: #0000BB">&#36;edd_displayed_form_ids</span><span style="color: #007700">[ </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">] = </span><span style="color: #0000BB">1</span><span style="color: #007700">;<br />
    }<br />
</span><span style="color: #0000BB">?&gt;<br />
</span>    &lt;script type="text/javascript"&gt;<br />
        (function(&#36;) {<br />
            &#36;(document).ready(function() {<br />
                &#36;('.rcp-edd-member-download-request').on('click', function(e) {<br />
                    e.preventDefault();<br />
                    e.stopImmediatePropagation();<br />
                    var item = &#36;(this).parent().find("input[name='rcp-edd-member-download-request']").val();<br />
                    var data = {<br />
                        action: 'rcp-edd-member-download-request',<br />
                        security: &#36;('#rcp-edd-member-download-nonce').val(),<br />
                        item: item<br />
                    }<br />
<br />
                    &#36;.ajax({<br />
                        data: data,<br />
                        type: "POST",<br />
                        dataType: "json",<br />
                        url: edd_scripts.ajaxurl,<br />
                        success: function (response) {<br />
                            if ( response.file &amp;&amp; response.file.length &gt; 0 ) {<br />
                                window.location.replace(response.file);<br />
                            }<br />
                        },<br />
                        error: function (response) {<br />
                            console.log('error ' + response);<br />
                        }<br />
                    });<br />
                });<br />
            });<br />
        })(jQuery);<br />
    &lt;/script&gt;<br />
<br />
<span style="color: #0000BB">&lt;?php<br />
    &#36;form_id      </span><span style="color: #007700">= ! empty( </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'form_id'</span><span style="color: #007700">] ) ? </span><span style="color: #0000BB">&#36;args</span><span style="color: #007700">[</span><span style="color: #DD0000">'form_id'</span><span style="color: #007700">] : </span><span style="color: #DD0000">'edd_purchase_' </span><span style="color: #007700">. </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
    </span><span style="color: #0000BB">&#36;button_color </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_option</span><span style="color: #007700">( </span><span style="color: #DD0000">'checkout_color'</span><span style="color: #007700">, </span><span style="color: #DD0000">'blue' </span><span style="color: #007700">);<br />
    </span><span style="color: #0000BB">ob_start</span><span style="color: #007700">();<br />
</span><span style="color: #0000BB">?&gt;<br />
</span>    &lt;form id="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">&#36;form_id</span><span style="color: #007700">; </span><span style="color: #0000BB">?&gt;</span>" class="edd_download_purchase_form edd_purchase_<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>" method="post"&gt;<br />
        &lt;input type="hidden" name="download_id" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">esc_attr</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
        &lt;input type="hidden" name="rcp-edd-member-download-request" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">esc_attr</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;download</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
        &lt;input type="hidden" id="rcp-edd-member-download-nonce" name="rcp-edd-member-download-nonce" value="<span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">wp_create_nonce</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp-edd-member-download-nonce' </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
        &lt;input type="submit" class="rcp-edd-member-download-request button edd-submit <span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">esc_attr</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;button_color </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>" value="<span style="color: #0000BB">&lt;?php esc_html_e</span><span style="color: #007700">( </span><span style="color: #DD0000">'Download'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">); </span><span style="color: #0000BB">?&gt;</span>"&gt;<br />
    &lt;/form&gt;<br />
<span style="color: #0000BB">&lt;?php<br />
    </span><span style="color: #007700">return </span><span style="color: #0000BB">ob_get_clean</span><span style="color: #007700">();<br />
<br />
}<br />
</span><span style="color: #0000BB">add_filter</span><span style="color: #007700">( </span><span style="color: #DD0000">'edd_purchase_download_form'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_download_button'</span><span style="color: #007700">, </span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">2 </span><span style="color: #007700">);<br />
<br />
<br />
function </span><span style="color: #0000BB">rcp_edd_member_downloads_process_ajax_download</span><span style="color: #007700">() {<br />
<br />
    global </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">;<br />
<br />
    </span><span style="color: #0000BB">check_ajax_referer</span><span style="color: #007700">( </span><span style="color: #DD0000">'rcp-edd-member-download-nonce'</span><span style="color: #007700">, </span><span style="color: #DD0000">'security' </span><span style="color: #007700">);<br />
<br />
    if ( ! </span><span style="color: #0000BB">is_user_logged_in</span><span style="color: #007700">() ) {<br />
        </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />
    }<br />
<br />
    </span><span style="color: #FF8000">// Check if the member has a membership that allows downloads<br />
    </span><span style="color: #0000BB">&#36;user </span><span style="color: #007700">= </span><span style="color: #0000BB">wp_get_current_user</span><span style="color: #007700">();<br />
    if ( ! </span><span style="color: #0000BB">rcp_edd_member_downloads_user_has_download_membership</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">) ) {<br />
        </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />
    }<br />
<br />
    if ( empty( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'item'</span><span style="color: #007700">] ) ) {<br />
        </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">(-</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br />
    } else {<br />
        </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">= </span><span style="color: #0000BB">absint</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'item'</span><span style="color: #007700">] );<br />
    }<br />
<br />
    if ( </span><span style="color: #0000BB">edd_has_user_purchased</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">) ) {<br />
<br />
        </span><span style="color: #0000BB">&#36;payment_args </span><span style="color: #007700">= array(<br />
            </span><span style="color: #DD0000">'number' </span><span style="color: #0000BB">  </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">1</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'status' </span><span style="color: #0000BB">  </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'publish'</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'user' </span><span style="color: #0000BB">    </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'download' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;item</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'meta_key' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'_rcp_edd_member_downloads'<br />
        </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;payments </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Payments_Query</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_args </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;payment  </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;payments</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_payments</span><span style="color: #007700">();<br />
<br />
        if ( ! </span><span style="color: #0000BB">&#36;payment </span><span style="color: #007700">) {<br />
            unset(</span><span style="color: #0000BB">&#36;payment_args</span><span style="color: #007700">[</span><span style="color: #DD0000">'meta_key'</span><span style="color: #007700">] );<br />
            </span><span style="color: #0000BB">&#36;payments </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Payments_Query</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_args </span><span style="color: #007700">);<br />
            </span><span style="color: #0000BB">&#36;payment  </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;payments</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_payments</span><span style="color: #007700">();<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;payment_meta </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_payment_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">]-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;files        </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_details'</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] );<br />
<br />
        if ( ! empty( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">) ) {<br />
            </span><span style="color: #0000BB">&#36;file_keys </span><span style="color: #007700">= </span><span style="color: #0000BB">array_keys</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">);<br />
            </span><span style="color: #0000BB">&#36;url       </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_file_url</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_info'</span><span style="color: #007700">][</span><span style="color: #DD0000">'email'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;file_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_details'</span><span style="color: #007700">][</span><span style="color: #0000BB">0</span><span style="color: #007700">][</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] );<br />
        } else {<br />
<br />
            </span><span style="color: #0000BB">&#36;files    </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
            </span><span style="color: #0000BB">&#36;file_key </span><span style="color: #007700">= </span><span style="color: #0000BB">false</span><span style="color: #007700">;<br />
<br />
            foreach ( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_details'</span><span style="color: #007700">] as </span><span style="color: #0000BB">&#36;key </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;cart_item </span><span style="color: #007700">) {<br />
                if ( </span><span style="color: #0000BB">&#36;cart_item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] === </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">) {<br />
                    </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;cart_item</span><span style="color: #007700">[</span><span style="color: #DD0000">'id'</span><span style="color: #007700">] );<br />
                    </span><span style="color: #0000BB">&#36;file_key </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;key</span><span style="color: #007700">;<br />
                    break;<br />
                }<br />
            }<br />
<br />
            if ( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">&#36;file_key </span><span style="color: #007700">) {<br />
                </span><span style="color: #0000BB">&#36;file_keys </span><span style="color: #007700">= </span><span style="color: #0000BB">array_keys</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">);<br />
                </span><span style="color: #0000BB">&#36;url       </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_file_url</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'user_info'</span><span style="color: #007700">][</span><span style="color: #DD0000">'email'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;file_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #0000BB">&#36;key</span><span style="color: #007700">] );<br />
            }<br />
        }<br />
<br />
    } else {<br />
<br />
        </span><span style="color: #0000BB">remove_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'edd_complete_purchase'</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_trigger_purchase_receipt'</span><span style="color: #007700">, </span><span style="color: #0000BB">999 </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">= </span><span style="color: #0000BB">rcp_get_subscription_id</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">);<br />
<br />
        if ( ! </span><span style="color: #0000BB">&#36;sub_id </span><span style="color: #007700">) {<br />
            </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'You do not have a membership.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">= (int) </span><span style="color: #0000BB">&#36;rcp_levels_db</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">get_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;sub_id</span><span style="color: #007700">, </span><span style="color: #DD0000">'edd_downloads_allowed'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
        if ( empty( </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">) ) {<br />
            </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'You must have a valid membership.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;current </span><span style="color: #007700">= </span><span style="color: #0000BB">get_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
        if ( </span><span style="color: #0000BB">&#36;current </span><span style="color: #007700">&gt;= </span><span style="color: #0000BB">&#36;max </span><span style="color: #007700">) {<br />
            </span><span style="color: #0000BB">wp_die</span><span style="color: #007700">( </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'You have reached the limit defined by your membership.'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
        }<br />
<br />
        </span><span style="color: #0000BB">&#36;payment </span><span style="color: #007700">= new </span><span style="color: #0000BB">EDD_Payment</span><span style="color: #007700">();<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add_download</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;item</span><span style="color: #007700">, array( </span><span style="color: #DD0000">'item_price' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">0.00 </span><span style="color: #007700">) );<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">email      </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_email</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">first_name </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">first_name</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">last_name  </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">last_name</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_id    </span><span style="color: #007700">= </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_info  </span><span style="color: #007700">= array(<br />
            </span><span style="color: #DD0000">'first_name' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">first_name</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'last_name' </span><span style="color: #0000BB"> </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">last_name</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'email' </span><span style="color: #0000BB">     </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_email</span><span style="color: #007700">,<br />
            </span><span style="color: #DD0000">'id' </span><span style="color: #0000BB">        </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID<br />
        </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">gateway </span><span style="color: #007700">= </span><span style="color: #DD0000">'manual'</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">status  </span><span style="color: #007700">= </span><span style="color: #DD0000">'pending'</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">save</span><span style="color: #007700">();<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">status  </span><span style="color: #007700">= </span><span style="color: #DD0000">'complete'</span><span style="color: #007700">;<br />
        </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">save</span><span style="color: #007700">();<br />
<br />
        </span><span style="color: #FF8000">// Add a piece of meta to the payment letting us know it was created by this plugin. We query using this meta for future checks.<br />
        </span><span style="color: #0000BB">edd_update_payment_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #DD0000">'_rcp_edd_member_downloads'</span><span style="color: #007700">, </span><span style="color: #0000BB">true </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">edd_insert_payment_note</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #0000BB">__</span><span style="color: #007700">( </span><span style="color: #DD0000">'Downloaded with RCP membership'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp-edd-member-downloads' </span><span style="color: #007700">) );<br />
<br />
        </span><span style="color: #0000BB">&#36;payment_meta </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_payment_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;files        </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_files</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;file_keys    </span><span style="color: #007700">= </span><span style="color: #0000BB">array_keys</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;files </span><span style="color: #007700">);<br />
        </span><span style="color: #0000BB">&#36;url          </span><span style="color: #007700">= </span><span style="color: #0000BB">edd_get_download_file_url</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;payment_meta</span><span style="color: #007700">[</span><span style="color: #DD0000">'key'</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">user_email</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;file_keys</span><span style="color: #007700">[</span><span style="color: #0000BB">0</span><span style="color: #007700">], </span><span style="color: #0000BB">&#36;item </span><span style="color: #007700">);<br />
<br />
        </span><span style="color: #0000BB">&#36;current</span><span style="color: #007700">++;<br />
        </span><span style="color: #0000BB">update_user_meta</span><span style="color: #007700">( </span><span style="color: #0000BB">&#36;user</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">ID</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_current_download_count'</span><span style="color: #007700">, </span><span style="color: #0000BB">&#36;current </span><span style="color: #007700">);<br />
    }<br />
<br />
    </span><span style="color: #0000BB">wp_send_json</span><span style="color: #007700">( array(<br />
        </span><span style="color: #DD0000">'files' </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;files</span><span style="color: #007700">,<br />
        </span><span style="color: #DD0000">'file' </span><span style="color: #0000BB"> </span><span style="color: #007700">=&gt; </span><span style="color: #0000BB">&#36;url<br />
    </span><span style="color: #007700">) );<br />
<br />
}<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'wp_ajax_rcp-edd-member-download-request'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_process_ajax_download' </span><span style="color: #007700">);<br />
</span><span style="color: #0000BB">add_action</span><span style="color: #007700">( </span><span style="color: #DD0000">'wp_ajax_nopriv_rcp-edd-member-download-request'</span><span style="color: #007700">, </span><span style="color: #DD0000">'rcp_edd_member_downloads_process_ajax_download' </span><span style="color: #007700">); <br />
</span><span style="color: #0000BB"></code></div></pre></div></div><br /><!-- start: postbit_attachments_attachment -->
<div class="w3-row w3-container" style="margin-top:20px; margin-bottom:10px;"><!-- w3-row (start) -->  
        <header class="w3-container w3-teal w3-card-4">
            <h2 style="color:#FFF; font-size:15px; padding:10px; margin:0px; direction:rtl;">
               دانلود rcp-edd-member-downloads.zip  
            </h2>
        </header> 
        <div class="w3-col m12 w3-container w3-white k-all-blocks w3-card-4"> 
			

				<style>

			td.attachrow        {font: normal 11px Tahoma;}
			td.attachheader     {font: normal 11px Tahoma; background-color: #ededed; }
			table.attachtable    {font: normal 12px Tahoma;border-collapse : collapse; }

			</style>
				<style>

			td.attachrow        {font: normal 11px Tahoma;}
			td.attachheader     {font: normal 11px Tahoma; background-color: #ededed; }
			table.attachtable    {font: normal 12px Tahoma;border-collapse : collapse; }

			</style>
				<style>
			<!--
			table.attachtable    {font: normal 12px Tahoma;border-collapse : collapse; }
			td.attachheader     {font: normal 11px Tahoma; background-color: #ededed; }
			td.attachrow        {font: normal 11px Tahoma;}
			-->
			</style>


				<table border="0" cellpadding="0" cellspacing="3">
			<!-----Postbit_Attachment---->
				</table>
				<table class="attachtable" id="table2" width="95%" align="center" border="1" cellpadding="2" cellspacing="0">

					<tr>
						<td class="attachrow" width="15%"><span class="genmed">نام فایل</span></td>
						<td class="attachrow" width="75%"><span class="genmed">rcp-edd-member-downloads.zip</span></td>
						<td rowspan="5" class="attachrow" width="20%" align="center">
						<a href="attachment.php?aid=1952">
						<img src="kdevelop_down.png" alt="" border="0"></a><br>
					</tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">نوع فایل</span></td>
						<td class="attachrow" width="75%">
						<!-- start: attachment_icon -->
<img src="https://www.kelidestan.com/forum/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon --></td>

			</td>        </tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">دفعات دانلود</span></td>
						<td class="attachrow" width="75%"><span class="genmed">185</span></td>
					</tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">اندازه</span></td>
						<td class="attachrow" width="75%">3.42 KB</td>
					</tr>
					<tr>
						<td class="attachrow" width="15%"><span class="genmed">ارسال کننده فایل</span></td>
						<td class="attachrow" width="75%">
						<a href="https://www.kelidestan.com/forum/member.php?action=profile&amp;uid=1892"></a></td>

			</td>        </tr>
				</table>


    </div>
</div><!-- w3-row (end) -->
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[اجرای فایل php به صورت سرویس یا همیشگی]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=9402</link>
			<pubDate>Thu, 26 Jan 2017 07:20:18 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=2978">pirozy</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=9402</guid>
			<description><![CDATA[با سلام<br />
دوستان چه طور میتونم تو php کاری کنم که یه فایل php به صورت همیشگی اجرا بشه<br />
به طور معمولی وقتی توی سایت یه صفحه رو ویزیت می کنیم کدهای اون صفحه اجرا میشه من میخوام کاری کنم که یک فایل به طور همیشگی روی سرور در حال اجرا باشه بدون درخواست ویزیت صفحه<br />
تو php این کار اصلا امکانش هست؟<br />
راستش واسه سوکت میخوام که به صورت سرور پیاده سازی شده توی یک فایل و میخوام همیشه در حال اجرا باشه<br />
با تشکر]]></description>
			<content:encoded><![CDATA[با سلام<br />
دوستان چه طور میتونم تو php کاری کنم که یه فایل php به صورت همیشگی اجرا بشه<br />
به طور معمولی وقتی توی سایت یه صفحه رو ویزیت می کنیم کدهای اون صفحه اجرا میشه من میخوام کاری کنم که یک فایل به طور همیشگی روی سرور در حال اجرا باشه بدون درخواست ویزیت صفحه<br />
تو php این کار اصلا امکانش هست؟<br />
راستش واسه سوکت میخوام که به صورت سرور پیاده سازی شده توی یک فایل و میخوام همیشه در حال اجرا باشه<br />
با تشکر]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[استفاده از mysql تحت شبکه و سوالاتی پیرامون یک سناریو]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=9386</link>
			<pubDate>Tue, 24 Jan 2017 14:39:46 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=3018">Ayma</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=9386</guid>
			<description><![CDATA[دوستان برنامه ای رو در نظر بگیرید تحت ویندوز که فرضا" برای دانش آموزان سوالات ازمون رو نشون می ده . قرار هست که این سوالات از <span style="font-weight: bold;" class="mycode_b">دیتابیس </span>لود بشه به گونه ای که وابستگی به اینترنت نداشته باشیم .<br />
 فرض کنیم سرور اصلی سوالات سرور سایت example.com هست همچنین ممکنه این دیتابیس بعضی جاها مثل هنرسنان یا آموزشگاه فقط روی کامپیوتر سرور نصب باشه و بقیه کامپیوترها اطلاعات رو از اون کامپیوتر سرور <br />
دریافت کنند . اما برنامه به گونه ای باشه در صورتی که دانش اموزی خواست سوالی به دیتابیس اضافه کنه ، جدا از اینکه در سیستم لوکالش سوال اضافه میشه باید گرینه ای هم برای ارسال سوالات سوال سمت سرور اصلی <br />
باشه و همچنین به محض وصل شدن سیستم به اینترنت ، باید اطلاعات جدید (سوالات جدید ) به دیتابیسی که دانش اموزان استفاده می کنه اضافه بشه<br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال اول : </span>ایا برای چنین سناریویی استفاده از mysql مشکلی ایجاد نمی کنه ؟ یا می تونه پاسخگو باشه <br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال دوم : </span>نظر به اینکه دانش اموز ممکنه مثلا 1000 سوال جدید اضافه کرده باشه و میخواد اینا رو سمت سرور سایت example.com ارسال کنه ، باید از چه روشی برای ارسال این اطلاعات جدید سمت سرور استفاده کنم ؟<br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال سوم : </span>وقتی که سرور اطلاعات ارسالی دانش اموز رو دریافت می کنه ایا باید دونه دونه رکوردهای رسیده از کاربر رو اعتبار سنجی کنم ؟ مثلا فرض کنید قرار نیست که داخل سوال کلمه انگلیسی باشه ما اینو با برنامه<br />
ویندوزی هم چک کردیم اما عقل حکم می کنه که سمت سرور هم دوباره اعتبار سنجی کنیم (یک دلیلش جلوگیری از هک ) ولی خوب ایجوری سرعت عملیات خیلی کند نمیشه ؟!<br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال چهارم : </span>سوالات جدیدی که از سمت سرور قراره به دیتابیس اضافه بشه رو با جیسون لود کنم یا روش بهنیه تری هم هست ؟<br />
<br />
سوال پنجم : اگر بین فیلدهای ارسالی و دریافتی از سرور به کامپیوتر مشتری ها ، قرار باشه عکسی هم رد و بدل بشه سریع ترین و امن ترین روش چی هست]]></description>
			<content:encoded><![CDATA[دوستان برنامه ای رو در نظر بگیرید تحت ویندوز که فرضا" برای دانش آموزان سوالات ازمون رو نشون می ده . قرار هست که این سوالات از <span style="font-weight: bold;" class="mycode_b">دیتابیس </span>لود بشه به گونه ای که وابستگی به اینترنت نداشته باشیم .<br />
 فرض کنیم سرور اصلی سوالات سرور سایت example.com هست همچنین ممکنه این دیتابیس بعضی جاها مثل هنرسنان یا آموزشگاه فقط روی کامپیوتر سرور نصب باشه و بقیه کامپیوترها اطلاعات رو از اون کامپیوتر سرور <br />
دریافت کنند . اما برنامه به گونه ای باشه در صورتی که دانش اموزی خواست سوالی به دیتابیس اضافه کنه ، جدا از اینکه در سیستم لوکالش سوال اضافه میشه باید گرینه ای هم برای ارسال سوالات سوال سمت سرور اصلی <br />
باشه و همچنین به محض وصل شدن سیستم به اینترنت ، باید اطلاعات جدید (سوالات جدید ) به دیتابیسی که دانش اموزان استفاده می کنه اضافه بشه<br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال اول : </span>ایا برای چنین سناریویی استفاده از mysql مشکلی ایجاد نمی کنه ؟ یا می تونه پاسخگو باشه <br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال دوم : </span>نظر به اینکه دانش اموز ممکنه مثلا 1000 سوال جدید اضافه کرده باشه و میخواد اینا رو سمت سرور سایت example.com ارسال کنه ، باید از چه روشی برای ارسال این اطلاعات جدید سمت سرور استفاده کنم ؟<br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال سوم : </span>وقتی که سرور اطلاعات ارسالی دانش اموز رو دریافت می کنه ایا باید دونه دونه رکوردهای رسیده از کاربر رو اعتبار سنجی کنم ؟ مثلا فرض کنید قرار نیست که داخل سوال کلمه انگلیسی باشه ما اینو با برنامه<br />
ویندوزی هم چک کردیم اما عقل حکم می کنه که سمت سرور هم دوباره اعتبار سنجی کنیم (یک دلیلش جلوگیری از هک ) ولی خوب ایجوری سرعت عملیات خیلی کند نمیشه ؟!<br />
<br />
<span style="font-weight: bold;" class="mycode_b">سوال چهارم : </span>سوالات جدیدی که از سمت سرور قراره به دیتابیس اضافه بشه رو با جیسون لود کنم یا روش بهنیه تری هم هست ؟<br />
<br />
سوال پنجم : اگر بین فیلدهای ارسالی و دریافتی از سرور به کامپیوتر مشتری ها ، قرار باشه عکسی هم رد و بدل بشه سریع ترین و امن ترین روش چی هست]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ارسال یک سرور به یک کابر بدون درخواستی از کاربر]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=8613</link>
			<pubDate>Wed, 21 Sep 2016 16:12:28 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=4660">Quark</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=8613</guid>
			<description><![CDATA[<span style="color: 000;" class="mycode_color">سلام.<br />
 خسته نباشید.<br />
 نمیدونم چطور دنبال جواب موضوعم بگردم.<br />
 من یک سایتی از یک هاست رایگان درست کردم.<br />
 میخوام دو کاربر رو با هم در ارتباط بذارم.<br />
 یعنی هر دو کاربر به اینترنت وصل هستن و هر وقت یکی به دیگری پیامی میده دیگری بدون اینکه صفحه ای رو چک کنه با خبر بشه.<br />
 یا جوره دیگه بگم. <span style="font-weight: bold;" class="mycode_b">اگه کاربری پیامی به سایت فرستاد، سایت خودش اقدام به فرستادن این اطلاعات به کاربر دیگه کنه.</span><br />
 من تنها با HttpGet بلدم کار کنم. البته اگه چیزه دیگه ام باید بلد باشم مهم نیست، میرم دنبالش.<br />
 از دوستان کسی میتونه کمکم کنه؟<br />
 خیلی مخلصیم.<br />
 باتشکر </span>]]></description>
			<content:encoded><![CDATA[<span style="color: 000;" class="mycode_color">سلام.<br />
 خسته نباشید.<br />
 نمیدونم چطور دنبال جواب موضوعم بگردم.<br />
 من یک سایتی از یک هاست رایگان درست کردم.<br />
 میخوام دو کاربر رو با هم در ارتباط بذارم.<br />
 یعنی هر دو کاربر به اینترنت وصل هستن و هر وقت یکی به دیگری پیامی میده دیگری بدون اینکه صفحه ای رو چک کنه با خبر بشه.<br />
 یا جوره دیگه بگم. <span style="font-weight: bold;" class="mycode_b">اگه کاربری پیامی به سایت فرستاد، سایت خودش اقدام به فرستادن این اطلاعات به کاربر دیگه کنه.</span><br />
 من تنها با HttpGet بلدم کار کنم. البته اگه چیزه دیگه ام باید بلد باشم مهم نیست، میرم دنبالش.<br />
 از دوستان کسی میتونه کمکم کنه؟<br />
 خیلی مخلصیم.<br />
 باتشکر </span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[آموزش ایجکس]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=8152</link>
			<pubDate>Sat, 16 Jul 2016 11:49:14 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=4276">fatemeh@</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=8152</guid>
			<description><![CDATA[سلام دوستان<br />
 <br />
من یه تکست اتوکامپلیت میخام<br />
ظاهرا باید با ایجکس کارکنم<br />
سرچ کردم اما همش چندتافایل مجزا بود برارسیدن به نتیجه ، میخاستم ببینم من که میخام همه رو تو یک فایل داشته باشم باید چجوری عمل کنم<br />
ممنونم]]></description>
			<content:encoded><![CDATA[سلام دوستان<br />
 <br />
من یه تکست اتوکامپلیت میخام<br />
ظاهرا باید با ایجکس کارکنم<br />
سرچ کردم اما همش چندتافایل مجزا بود برارسیدن به نتیجه ، میخاستم ببینم من که میخام همه رو تو یک فایل داشته باشم باید چجوری عمل کنم<br />
ممنونم]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[نمایش چک باگس هایی (checkbox) که قبلا انتخاب شده بصورت تیک دار (در PHP)]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=8125</link>
			<pubDate>Mon, 11 Jul 2016 07:50:03 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=4276">fatemeh@</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=8125</guid>
			<description><![CDATA[سلام دوستان<br />
من یه گزینه دارم که یه صفحه رو باز میکنه حاوی یه سری چک باگس <br />
حالا من میخام کاربر دفعه بعد هم که روی گزینه کلیک کرد اکه قبلا چک باگسی را انتخاب کرده ، بصورت انتخاب شده به او نمایش داده شود<br />
ممکنه راهنمایی ام کنید]]></description>
			<content:encoded><![CDATA[سلام دوستان<br />
من یه گزینه دارم که یه صفحه رو باز میکنه حاوی یه سری چک باگس <br />
حالا من میخام کاربر دفعه بعد هم که روی گزینه کلیک کرد اکه قبلا چک باگسی را انتخاب کرده ، بصورت انتخاب شده به او نمایش داده شود<br />
ممکنه راهنمایی ام کنید]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[نمایش اطلاعات جدول]]></title>
			<link>https://www.kelidestan.com/forum/showthread.php?tid=7621</link>
			<pubDate>Wed, 27 Apr 2016 19:05:43 +0100</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kelidestan.com/forum/member.php?action=profile&uid=1483">momayyezi_m</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kelidestan.com/forum/showthread.php?tid=7621</guid>
			<description><![CDATA[با سلام ..میخواستم تمام ردیف های جدولم رو ازش پرینت بگیرم و این کد رو نوشتم ولی فقط ردیف اخر رو پرینت میگیره <br />
<a href="http://8pic.ir/images/t7jj7xl6zwdv3et6lsx6.jpg" target="_blank" rel="noopener" class="mycode_url">http://8pic.ir/images/t7jj7xl6zwdv3et6lsx6.jpg</a><br />
<br />
اگر راهنمایی کنید ممنون میشم]]></description>
			<content:encoded><![CDATA[با سلام ..میخواستم تمام ردیف های جدولم رو ازش پرینت بگیرم و این کد رو نوشتم ولی فقط ردیف اخر رو پرینت میگیره <br />
<a href="http://8pic.ir/images/t7jj7xl6zwdv3et6lsx6.jpg" target="_blank" rel="noopener" class="mycode_url">http://8pic.ir/images/t7jj7xl6zwdv3et6lsx6.jpg</a><br />
<br />
اگر راهنمایی کنید ممنون میشم]]></content:encoded>
		</item>
	</channel>
</rss>