مشکل با ثبت افزونه در مخزن اصلی وردپرس
0

13 ارسال در این موضوع قرار دارد

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

ممنونم از راهنمای شما دوستان عزیز.



1) You have not corrected the issues.

2) You need to delete the file js/jquery.min.js from your plugin

3) The file includes/send-offer.php is still calling wp-load.php directly AND is directly accessible without a nonce.

4) function eopl_offer_css is still using link tags to call stylesheets instead of wp_enqueue_style.

5) Also functions like function offer_options_panel() are still poorly named.

 

من مورد 2 را متوجه شدم که میگه فایل jquery خودتو از پلاگین حذف کن و از jquery وردپرس استفاده کن.خوب مشکلی که اینجا هست از jquery وردپرس استفاده می کنم یک دستوری که برای ajax من برای show و hidden فرم استفاده می کنم کار نمی کنه.اما مخزن وردپرس اصرار داده که این jquery باید پاک بشه.

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

با تشکر از این که وقت می زارید.

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


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

دوستان عزیز ممنون میشم راهنمایی بفرمایید.

در خصوص مورد 3 نیز خدمت شما عرض کنم اصرار دارند که wp-load.php که در فایل send-offer.php صدا زده میشه حذف بشه اما با حذف این مورد دیگ دستوراتی مانند get_option('test')کار نمی کنه.

ممنون میشم راهنمایی کوچیک بفرمایید.

با تشکر.

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


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

سلام

 

2. در مورد اون خطا در قسمت console مرورگر ببینید چه خطایی دارید.

3. بجز get_option به چه فانکشن های دیگه ای نیاز دارید. این یک ریسک امنیتی هست. دلیل صدا زدن مستقیم send-offer.php چی هست؟

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 8 ساعت قبل، MahdiY گفته است :

سلام

 

2. در مورد اون خطا در قسمت console مرورگر ببینید چه خطایی دارید.

3. بجز get_option به چه فانکشن های دیگه ای نیاز دارید. این یک ریسک امنیتی هست. دلیل صدا زدن مستقیم send-offer.php چی هست؟

در خصوص مورد اول من اول jquery که خودم اضافه کردم حذف کردم اما و در consol خطای زیر مشاهده می شود:

TypeError: $ is not a function


که گفته در لاین ۲۷۴
رفتم به این خط دیدم به کد زیر گیر داده:

$(document).ready(function() {
    ....
        });


و اگر این خط را پاک کنم خط بعدی را ایراد میگیره کلا زمانی که من jquery خودمو از فایل پلاگین حذف می کنم تمامی کدهای ajax را گیر میده.

====================

در خصوص مورد دو باید خدمت شما عرض کنم من یک فرم ایجاد کردم که یک سری مقادیر را به صورت ajax به فایل send-offer.php ارسال می کنه که محتویات آن به شرح زیر می باشد.که برای اینکه یه سری فانکشن های وردپرس لود بشن باید از فایل wp-load استفاده کنم در غیر این صورت لود نمیشن.

من یک فرم دارم که به صورت ajax به فایل send-offer.php ارسال می کنه.

کد دستوری که به فایل send-offer.php ارسال می کنم.

$(document).ready(function() {
			$("#btn-formPKP").click(function(){
				$("#offer-price-lower").toggle(300);
			});
			$('#offerbtn').click(function() {
				$('#offerbtn').attr('value', '<?php _e('sending...','edd-offer-alfatheme'); ?>');
				$.post("<?php echo EOPL_URL; ?>includes/send-offer.php", $("#form-PKP").serialize(), function(response) {
					$('#successPKP').html(response);
					$('#offerbtn').attr('value', '<?php _e('send','edd-offer-alfatheme'); ?>');
				});
					return false;
			});
		});

 

محتویات فایل send-offer.php

require_once("../../../../wp-load.php");
$msgerr = array();

$user_id = intval( $_POST['user_id'] );
if ( ! $user_id ) {
  $user_id = '';
}
$email = sanitize_email($_POST['email']); 
if ( ! $email ) {
  $email = '';
}
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
	echo $msgerr['email_error'] = '<div class="alert alert-danger text-justify">'.$email_error_txt.'</div>';
}

$to = get_option('eopl_admin_email');
$subject="تست عنوان موضوع";
$email_wppanel = get_option('eopl_email_wppanel');
$message = $user.' '.$email;
$headers = 'From: '.$email_wppanel . "\r\n";
if(!count($msgerr)){
	//mail($to, $subject, $message, $headers); //This method sends the mail.
	wp_mail($to,$subject,$message,$headers);
	echo $msgerr['success'] = "<div class='alert alert-success text-justify'>با موفقیت انجام شد.</div>"; // success message
}

فقط این دو مورد ایراد مونده باقی موارد را انجام دادم.

============================

به طور خلاصه مجددا مشکلات را خدمت شما عرض می کنم.

وب سایت وردپرس میگه که نباید فایل wp-load.php در فایل send-offer صدا زده بشه، خوب اگر من این فایل را صدا نزنم یه سری فانکش های وردپرس اصلا کار نمی کنند.

--------

وب سایت وردپرس می گه باید فایل jquery  که من با دستور زیر در پلاگین فراخوانی می کنم باید حذف بشه، اگر این مورد را حذف کنم اون کد آجاکس که برای نمایش و مخفی کردن فرم استفاده می شه کار نمی کنه.

wp_deregister_script('jquery');
	wp_register_script('jquery', EOPL_JS_URL.'jquery.min.js', true, '1.11.3');
	wp_enqueue_script('jquery'); 

============================

ممنون میشم راهنمایی بفرمایید.

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

 

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


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

سلام

 

1.

محتوای مخفی

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

5 روش رو تست بزن. روش 3ام بنظرم بهترین گزینس

 

2. از آجکس خود وردپرس استفاده کنید. بدون دردسر شیک و مجلسی!

محتوای مخفی

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

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


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

با سلام و احترام.

آقا mahdiy عزیز با مورد زیرکه فرمودید:

 1. 5 روش اجرای یک کد بعد از لود شدن کامل صفحه - Snippets

5 روش رو تست بزن. روش 3ام بنظرم بهترین گزینس 

با کد بالا مشکل آجکس حل شد.

--------------------

فقط تنها موردی که مونده صدا زدن فایل wp-load.php هست.

برای حل مشکل فایل send-offer.php چی کار کنم؟

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

require_once("../../../../wp-load.php");

واقعا خییلی ممنون از کمکتون خواهش می کنم برای این مورد یه مقدار کاملتر راهنمایی کنید.

محبت می کنید.

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 23 ساعت قبل، rocki3oy گفته است :

با سلام و احترام.

آقا mahdiy عزیز با مورد زیرکه فرمودید:


 1. 5 روش اجرای یک کد بعد از لود شدن کامل صفحه - Snippets

5 روش رو تست بزن. روش 3ام بنظرم بهترین گزینس 

با کد بالا مشکل آجکس حل شد.

--------------------

فقط تنها موردی که مونده صدا زدن فایل wp-load.php هست.

برای حل مشکل فایل send-offer.php چی کار کنم؟

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


require_once("../../../../wp-load.php");

واقعا خییلی ممنون از کمکتون خواهش می کنم برای این مورد یه مقدار کاملتر راهنمایی کنید.

محبت می کنید.

سلام

 

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

در 23 ساعت قبل، rocki3oy گفته است :

برای من سواله چرا اگر دستور زیر در فایل send-offer.php نباشه اصلا دستورات اجرا نمیشه!!!!


require_once("../../../../wp-load.php");

 

سلام

 

چون وقتی شما فایل send-offer.php رو بطور مستقیم باز میکنید اصلا وردپرس لود نمیشود. درسته که داخلی دایرکتوری های وردپرس هست ولی وردپرس لود نشده

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


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

با سلام و احترام.

آقا MahdiY عزیز با راهنمایی های شما این موارد رفع شد و مورد تایید وب سایت وردپرس بود.

اما یک ایمیل جدید برام ارسال کرده بابت یه سری اصلاحات دیگر ممنون میشم راهنمایی بفرمایید.

function eopl_page_option_function() needs a nonce

## Not using Nonces and/or checking permissions

Please add a nonce to your POST calls to prevent unauthorized access. 

Keep in mind, check_admin_referer alone is NOT bulletproof security. Do not rely on nonces for authorization purposes. Use current_user_can() in order to prevent users without the right permissions from accessing things. 

https://codex.wordpress.org/WordPress_Nonces 

 

ممنون میشم یک مقدار منو راهنمایی کنید و همین طور یک مثال در خصوص چیزی که می خواین برام بیارید خیلی ممنون میشم.

لطفا در خصوص صفحه زیر یک توضیح بدید که کجا ها استفاده می شود و برای چیست:

https://codex.wordpress.org/WordPress_Nonces 

با تشکر از محبت شما.

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


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

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

https://codex.wordpress.org/WordPress_Nonces 

توضیح در خصوص:

توضیحات این صفحع به چه درد می خوره؟

کجاها استفاده میشه؟

چند مثال هم بیارید ممنون میشم.

با تشکر از محبت شما.

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/04/04, 00:25:05، rocki3oy گفته است :

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


https://codex.wordpress.org/WordPress_Nonces 

توضیح در خصوص:

توضیحات این صفحع به چه درد می خوره؟

کجاها استفاده میشه؟

چند مثال هم بیارید ممنون میشم.

با تشکر از محبت شما.

سلام

 

تاخیر به دلیل امتحانات!

nonce یه کد هش ساخته شده توسط یسری نمک و اکشن فرم هست! مثلا فرض کنید شما یه فرم داخل سایت دارید. میگید من یه nonce نیاز دارم که میخوام login کنم. این توابع میان برای شما یدونه کد ایجاد میکنن و به شما میگه هر موقع خواستید فرم را ثبت کنید این nonce رو برای من بفرستید.

در زمان ارسال فرم nonce ارسال شده به اکشن درخواستی (login) بررسی میشه. در صورتی که این دو برابر بودند یعنی فرم در زمان مقرر و توسط کاربر معتبر ارسال شده است. این nonce در وردپرس محدودیت زمانی 24 ساعت دارد. یعنی در مدت 24 ساعت یکتا خواهد بود.

 

مثال های کلاس زیر رو ببین تا متوجه کلیت این موضوع بشید

محتوای مخفی

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

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


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

با سلام و احترام.

ممنونم از این که راهنمایی می کنید.

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

من کد زیر را در فرم اضافه کردم.

<?php wp_nonce_field( 'delete-post_'.get_the_ID() ); ?>

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

<input id="_wpnonce" name="_wpnonce" value="15c80fed8e" type="hidden">
<input name="_wp_http_referer" value="/wp1/downloads/%d9%82%d8%a7%d9%84%d8%a8-%d9%88%d8%b1%d8%af%d9%be%d8%b1%d8%b3-%d9%81%db%8c%d9%84%d9%85-%d9%88-%d8%a7%d9%86%db%8c%d9%85%d8%b4%db%8c%d9%86-moview/" type="hidden">

خوب الان همین کار کافیه؟!

فرمی که من ایجاد کردم فقط در دیتابیس ذخیره می کنه و به ایمیل یک متنی ارسال می کنه.

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


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

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

ممنونم

شرمنده.

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


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

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

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

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

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

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

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

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

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

0