PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : خطا در استفاده از توابع وردپرس ===> پلاگین نویسی



iroo
December 10th, 2019, 10:09
سلام و عرض ادب و خسته نباشید خدمت شما
چند روزی هست که در حال طراحی یک افزونه وردپرسی هستم، اما با خطاهایی مواجه میشوم که آشنایی نداریم چطوری باید رفع کرد و مشکل از کجاست

<?php/*
Plugin Name: plugin name
Plugin URI: http://Bazarwp.com/
Description: plugin descriptions
Author:
Version: 2.0
Author URI: Https://Bazarwp.com
Date: 12/5/2019 16:50
*/


defined( 'ABSPATH' ) || exit( '' );


$to = 'myemail_address@gmail.com';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');


wp_mail( $to, $subject, $body, $headers );


?>

خیلی ساده بدون هیچ کار خاصی میخوام یک ایمیل ارسال کنم
این خطا رو میده

Fatal error: Call to undefined function wp_mail() in /home/site/public_html/wp-content/plugins/my_plugin/my_plugin.php on line 34

ولی وقتی این رو داخل هوک init استفاده میکنم خطا نمیده و ایمیل ارسال میشه

برخی از توابع وردپرس رو استفاده میکنم اینجوری میشه، مشکل از کجاست به نظرتون؟
ممنون میشم راهنمائیم کنید

با تشکر

hoka
December 10th, 2019, 16:57
require_once("../../../wp-load.php");

iroo
December 11th, 2019, 12:27
require_once("../../../wp-load.php");

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

Rezash
December 11th, 2019, 13:14
ولی وقتی این رو داخل هوک init استفاده میکنم خطا نمیده و ایمیل ارسال میشه

برخی از توابع وردپرس رو استفاده میکنم اینجوری میشه، مشکل از کجاست به نظرتون؟
ممنون میشم راهنمائیم کنید

با تشکر
سلام
غلت دقیقا در داخل پرسش هست
شما توابع وردپرس رو باید بعد از لود شدنشون اجرا کنید
وقتی فایل پلاگین شما قبل از فایلی که مثلا تابع wp_mail رو تعریف کرده اجرا میشه طبیعتا خطا دریافت میکنید
اما وقتی از هوک ها استفاده میکنید و بعد از init کدتون رو اجرا میکنید چون اون فایل ها include شدن خطایی نمی گیرید
باید موقع استفاده از توابع دقت کنید در چه فایلی تعریف شده و با چه هوکی در دسترس هست برای این منظور باید داکیومنت توسعه دهندگان
مثلا تابعی که گفتید رو ببینید :
https://developer.wordpress.org/reference/functions/wp_mail/
در داکیومنت اشاره شده که :

The function is available after the hook 'plugins_loaded'.

iroo
December 14th, 2019, 11:10
سلام
غلت دقیقا در داخل پرسش هست
شما توابع وردپرس رو باید بعد از لود شدنشون اجرا کنید
وقتی فایل پلاگین شما قبل از فایلی که مثلا تابع wp_mail رو تعریف کرده اجرا میشه طبیعتا خطا دریافت میکنید
اما وقتی از هوک ها استفاده میکنید و بعد از init کدتون رو اجرا میکنید چون اون فایل ها include شدن خطایی نمی گیرید
باید موقع استفاده از توابع دقت کنید در چه فایلی تعریف شده و با چه هوکی در دسترس هست برای این منظور باید داکیومنت توسعه دهندگان
مثلا تابعی که گفتید رو ببینید :
https://developer.wordpress.org/reference/functions/wp_mail/
در داکیومنت اشاره شده که :

The function is available after the hook 'plugins_loaded'.


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