我需要發送一個自定義電子郵件給用戶在我的moodle網站上註冊後,但我希望它具有所有用戶iformation顯示,我一直在尋找很多,發現這link,它用用戶名發送一個自定義的電子郵件給管理員,但我已經試圖發送更多的信息,比如我添加的自定義字段,甚至像手機這樣的默認字段,但我找不到方法,我希望你能幫助我。電子郵箱moodle用戶數據註冊後
1
A
回答
3
您可以使用'user_created'事件。 http://docs.moodle.org/dev/Events_API#Users
沒有測試過這一點,但你可以創建一個本地插件
創建本地文件夾
/local/newuser/
創建events.php
/local/newuser/db/events.php
粘貼到events.php這
defined('MOODLE_INTERNAL') || die();
$handlers = array (
'user_created' => array (
'handlerfile' => '/local/newuser/lib.php',
'handlerfunction' => 'local_newuser_user_created',
'schedule' => 'instant',
),
);
創建lib.php文件
/local/newuser/lib.php
粘貼到lib.php這
defined('MOODLE_INTERNAL') || die();
function local_newuser_user_created($user) {
global $DB;
$body = '';
// Original fields.
foreach ($user as $field => $value) {
$body .= $field . ' = ' . $value . "\n";
}
// Custom fields.
$sql = "SELECT f.id, f.name, d.data
FROM {user_info_field} f
LEFT JOIN {user_info_data} d ON d.fieldid = f.id AND d.userid = :userid";
$customfields = $DB->get_records_sql($sql, array('userid' => $user->id);
foreach ($customfields as $customfield) {
$body .= $customfield->name . ' = ' . $customfield->data . "\n";
}
// Send the email to the admin user
$admin = get_admin();
$subject = get_string('newuser');
email_to_user($admin, $admin, $subject, $body);
return true;
}
最後創建version.php
/local/newuser/version.php
並粘貼此
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2014012901; // Plugin version.
$plugin->requires = 2013051402; // Moodle version.
$plugin->component = 'local_newuser'; // Full name of the plugin (used for diagnostics).
然後在Moodle中轉到站點管理 - >通知來添加代碼。然後創建一個用戶和管理員應該收到一封電子郵件:)
0
你的鏈接功能啓動這樣的:
功能send_confirmation_email($用戶){
的「$用戶」變量它是一個對象,應該有你需要的一切:
$用戶>名字, $ user-> lastname,$ user-> phone1,$ user-> phone2等。檢出數據庫表mdl_user。
+0
我要試試這個,但是這將加載由我建立的自定義字段?或者我需要創建另一個對象? – Drintios
0
謝謝羅素英格蘭結合你的建議和鏈接我有我想出了這個函數爲moodlelib.php,它需要清理,但它現在的工作
function send_confirmation_email($user) {
global $CFG;
global $DB;
$countries = array("AF"=>"AFGHANISTAN",
"AX"=>"ALAND ISLANDS",
"AL"=>"ALBANIA",
"DZ"=>"ALGERIA",
"AS"=>"AMERICAN SAMOA",
"AD"=>"ANDORRA",
"AO"=>"ANGOLA",
"AI"=>"ANGUILLA",
"AQ"=>"ANTARCTICA",
"AG"=>"ANTIGUA AND BARBUDA",
"AR"=>"ARGENTINA",
"AM"=>"ARMENIA",
"AW"=>"ARUBA",
"AU"=>"AUSTRALIA",
"AT"=>"AUSTRIA",
"AZ"=>"AZERBAIJAN",
"BS"=>"BAHAMAS",
"BH"=>"BAHRAIN",
"BD"=>"BANGLADESH",
"BB"=>"BARBADOS",
"BY"=>"BELARUS",
"BE"=>"BELGIUM",
"BZ"=>"BELIZE",
"BJ"=>"BENIN",
"BM"=>"BERMUDA",
"BT"=>"BHUTAN",
"BO"=>"BOLIVIA",
"BA"=>"BOSNIA AND HERZEGOVINA",
"BW"=>"BOTSWANA",
"BV"=>"BOUVET ISLAND",
"BR"=>"BRAZIL",
"IO"=>"BRITISH INDIAN OCEAN TERRITORY",
"BN"=>"BRUNEI DARUSSALAM",
"BG"=>"BULGARIA",
"BF"=>"BURKINA FASO",
"BI"=>"BURUNDI",
"KH"=>"CAMBODIA",
"CM"=>"CAMEROON",
"CA"=>"CANADA",
"CV"=>"CAPE VERDE",
"CI"=>"CâTE D'IVOIRE",
"KY"=>"CAYMAN ISLANDS",
"CF"=>"CENTRAL AFRICAN REPUBLIC",
"TD"=>"CHAD",
"CL"=>"CHILE",
"CN"=>"CHINA",
"CX"=>"CHRISTMAS ISLAND",
"CC"=>"COCOS (KEELING) ISLANDS",
"CO"=>"COLOMBIA",
"KM"=>"COMOROS",
"CG"=>"CONGO",
"CD"=>"CONGO, THE DEMOCRATIC REPUBLIC OF THE",
"CK"=>"COOK ISLANDS",
"CR"=>"COSTA RICA",
"HR"=>"CROATIA",
"CU"=>"CUBA",
"CY"=>"CYPRUS",
"CZ"=>"CZECH REPUBLIC",
"DK"=>"DENMARK",
"DJ"=>"DJIBOUTI",
"DM"=>"DOMINICA",
"DO"=>"DOMINICAN REPUBLIC",
"EC"=>"ECUADOR",
"EG"=>"EGYPT",
"SV"=>"EL SALVADOR",
"GQ"=>"EQUATORIAL GUINEA",
"ER"=>"ERITREA",
"EE"=>"ESTONIA",
"ET"=>"ETHIOPIA",
"FK"=>"FALKLAND ISLANDS (MALVINAS)",
"FO"=>"FAROE ISLANDS",
"FJ"=>"FIJI",
"FI"=>"FINLAND",
"FR"=>"FRANCE",
"GF"=>"FRENCH GUIANA",
"PF"=>"FRENCH POLYNESIA",
"TF"=>"FRENCH SOUTHERN TERRITORIES",
"GA"=>"GABON",
"GM"=>"GAMBIA",
"GE"=>"GEORGIA",
"DE"=>"GERMANY",
"GH"=>"GHANA",
"GI"=>"GIBRALTAR",
"GR"=>"GREECE",
"GL"=>"GREENLAND",
"GD"=>"GRENADA",
"GP"=>"GUADELOUPE",
"GU"=>"GUAM",
"GT"=>"GUATEMALA",
"GN"=>"GUINEA",
"GW"=>"GUINEA-BISSAU",
"GY"=>"GUYANA",
"HT"=>"HAITI",
"HM"=>"HEARD ISLAND AND MCDONALD ISLANDS",
"VA"=>"HOLY SEE (VATICAN CITY STATE)",
"HN"=>"HONDURAS",
"HK"=>"HONG KONG",
"HU"=>"HUNGARY",
"IS"=>"ICELAND",
"IN"=>"INDIA",
"ID"=>"INDONESIA",
"IR"=>"IRAN ISLAMIC REPUBLIC OF",
"IQ"=>"IRAQ",
"IE"=>"IRELAND",
"IL"=>"ISRAEL",
"IT"=>"ITALY",
"JM"=>"JAMAICA",
"JP"=>"JAPAN",
"JO"=>"JORDAN",
"KZ"=>"KAZAKHSTAN",
"KE"=>"KENYA",
"KI"=>"KIRIBATI",
"KP"=>"KOREA DEMOCRATIC PEOPLE\'S REPUBLIC OF",
"KR"=>"KOREA REPUBLIC OF",
"KW"=>"KUWAIT",
"KG"=>"KYRGYZSTAN",
"LA"=>"LAO PEOPLE\'S DEMOCRATIC REPUBLIC",
"LV"=>"LATVIA",
"LB"=>"LEBANON",
"LS"=>"LESOTHO",
"LR"=>"LIBERIA",
"LY"=>"LIBYAN ARAB JAMAHIRIYA",
"LI"=>"LIECHTENSTEIN",
"LT"=>"LITHUANIA",
"LU"=>"LUXEMBOURG",
"MO"=>"MACAO",
"MK"=>"MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF",
"MG"=>"MADAGASCAR",
"MW"=>"MALAWI",
"MY"=>"MALAYSIA",
"MV"=>"MALDIVES",
"ML"=>"MALI",
"MT"=>"MALTA",
"MH"=>"MARSHALL ISLANDS",
"MQ"=>"MARTINIQUE",
"MR"=>"MAURITANIA",
"MU"=>"MAURITIUS",
"YT"=>"MAYOTTE",
"MX"=>"MEXICO",
"FM"=>"MICRONESIA, FEDERATED STATES OF",
"MD"=>"MOLDOVA, REPUBLIC OF",
"MC"=>"MONACO",
"MN"=>"MONGOLIA",
"MS"=>"MONTSERRAT",
"MA"=>"MOROCCO",
"MZ"=>"MOZAMBIQUE",
"MM"=>"MYANMAR",
"NA"=>"NAMIBIA",
"NR"=>"NAURU",
"NP"=>"NEPAL",
"NL"=>"NETHERLANDS",
"AN"=>"NETHERLANDS ANTILLES",
"NC"=>"NEW CALEDONIA",
"NZ"=>"NEW ZEALAND",
"NI"=>"NICARAGUA",
"NE"=>"NIGER",
"NG"=>"NIGERIA",
"NU"=>"NIUE",
"NF"=>"NORFOLK ISLAND",
"MP"=>"NORTHERN MARIANA ISLANDS",
"NO"=>"NORWAY",
"OM"=>"OMAN",
"PK"=>"PAKISTAN",
"PW"=>"PALAU",
"PS"=>"PALESTINIAN TERRITORY, OCCUPIED",
"PA"=>"PANAMA",
"PG"=>"PAPUA NEW GUINEA",
"PY"=>"PARAGUAY",
"PE"=>"PERU",
"PH"=>"PHILIPPINES",
"PN"=>"PITCAIRN",
"PL"=>"POLAND",
"PT"=>"PORTUGAL",
"PR"=>"PUERTO RICO",
"QA"=>"QATAR",
"RE"=>"REUNION",
"RO"=>"ROMANIA",
"RU"=>"RUSSIAN FEDERATION",
"RW"=>"RWANDA",
"SH"=>"SAINT HELENA",
"KN"=>"SAINT KITTS AND NEVIS",
"LC"=>"SAINT LUCIA",
"PM"=>"SAINT PIERRE AND MIQUELON",
"VC"=>"SAINT VINCENT AND THE GRENADINES",
"WS"=>"SAMOA",
"SM"=>"SAN MARINO",
"ST"=>"SAO TOME AND PRINCIPE",
"SA"=>"SAUDI ARABIA",
"SN"=>"SENEGAL",
"CS"=>"SERBIA AND MONTENEGRO",
"SC"=>"SEYCHELLES",
"SL"=>"SIERRA LEONE",
"SG"=>"SINGAPORE",
"SK"=>"SLOVAKIA",
"SI"=>"SLOVENIA",
"SB"=>"SOLOMON ISLANDS",
"SO"=>"SOMALIA",
"ZA"=>"SOUTH AFRICA",
"GS"=>"SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS",
"ES"=>"SPAIN",
"LK"=>"SRI LANKA",
"SD"=>"SUDAN",
"SR"=>"SURINAME",
"SJ"=>"SVALBARD AND JAN MAYEN",
"SZ"=>"SWAZILAND",
"SE"=>"SWEDEN",
"CH"=>"SWITZERLAND",
"SY"=>"SYRIAN ARAB REPUBLIC",
"TW"=>"TAIWAN PROVINCE OF CHINA",
"TJ"=>"TAJIKISTAN",
"TZ"=>"TANZANIA UNITED REPUBLIC OF",
"TH"=>"THAILAND",
"TL"=>"TIMOR-LESTE",
"TG"=>"TOGO",
"TK"=>"TOKELAU",
"TO"=>"TONGA",
"TT"=>"TRINIDAD AND TOBAGO",
"TN"=>"TUNISIA",
"TR"=>"TURKEY",
"TM"=>"TURKMENISTAN",
"TC"=>"TURKS AND CAICOS ISLANDS",
"TV"=>"TUVALU",
"UG"=>"UGANDA",
"UA"=>"UKRAINE",
"AE"=>"UNITED ARAB EMIRATES",
"GB"=>"UNITED KINGDOM",
"US"=>"UNITED STATES",
"UM"=>"UNITED STATES MINOR OUTLYING ISLANDS",
"UY"=>"URUGUAY",
"UZ"=>"UZBEKISTAN",
"VU"=>"VANUATU",
"VE"=>"VENEZUELA",
"VN"=>"VIETNAM",
"VG"=>"VIRGIN ISLANDS BRITISH",
"VI"=>"VIRGIN ISLANDS U.S.",
"WF"=>"WALLIS AND FUTUNA",
"EH"=>"WESTERN SAHARA",
"YE"=>"YEMEN",
"ZM"=>"ZAMBIA",
"ZW"=>"ZIMBABWE");
$site = get_site();
$supportuser = generate_email_supportuser();
$data = new stdClass();
$data->firstname = fullname($user);
$data->sitename = format_string($site->fullname);
$data->admin = generate_email_signoff();
$subject = get_string('emailconfirmationsubject', '', format_string($site->fullname));
$username = urlencode($user->username);
$username = str_replace('.', '%2E', $username); // prevent problems with trailing dots
$data->link = $CFG->wwwroot .'/login/confirm.php?data='. $user->secret .'/'. $username;
$message = get_string('emailconfirmation', '', $data);
$messagehtml = text_to_html(get_string('emailconfirmation', '', $data), false, false, true);
$dataadmin = new stdClass();
$dataadmin->admindata = generate_email_signoff();
$dataadmin->supportname = $dataadmin->admindata->supportname;
$dataadmin->firstname = $data->firstname;
$dataadmin->sitename = $data->sitename;
$messageadmin = get_string('emailconfirmationtoadmin', '', $dataadmin);
$messagehtmladmin = text_to_html(get_string('emailconfirmationtoadmin', '', $dataadmin), false, false, true);
$user->mailformat = 1; // Always send HTML version as well
//email_to_user($user, $from, $subject, $messagetext, $messagehtml='', $attachment='', $attachname='', $usetrueaddress=true, $replyto='', $replytoname='', $wordwrapwidth=79)
//get all the user fields and email them
$body = '';
// Original fields.
foreach ($user as $field => $value) {
if($field == 'firstname'){
$body .= 'Nombre: ' . ' ' . $value . "\n";
}
if($field == 'lastname'){
$body .= 'Apellido: '. ' ' . $value . "\n";
}
if($field == 'email'){
$body .= 'Correo: ' . ' ' . $value . "\n";
}
if($field == 'city'){
$body .= 'Ciudad: ' . ' ' . $value . "\n";
}
if($field == 'country'){
$body .= 'Pais: ' . ' ' . $countries[$value] . "\n";
}
}
// Custom fields.
$sql = "SELECT f.id, f.name, d.data
FROM {user_info_field} f
LEFT JOIN {user_info_data} d ON d.fieldid = f.id AND d.userid = :userid";
$customfields = $DB->get_records_sql($sql, array('userid' => $user->id));
foreach ($customfields as $customfield) {
if($customfield->name == 'Fecha en la que se constituye la empresa'){
$body .= $customfield->name . ' : ' . ' ' . gmdate('d/F/Y', $customfield->data) . "\n";
}
else{
$body .= $customfield->name . ' : ' . ' ' . $customfield->data . "\n";
}
}
// Send the email to a static user
$admin = '[email protected]';
$subject = get_string('newuser');
$headers = "From: [email protected]" . "\r\n" ;
mail($admin, $subject, $body, $headers);
//send email to admin
email_to_user($supportuser, $supportuser, $subject, $messageadmin, $messagehtmladmin);
//directly email rather than using the messaging system to ensure its not routed to a popup or jabber
return email_to_user($user, $supportuser, $subject, $message, $messagehtml);
}
0
相關問題
- 1. 用戶註冊電子郵件驗證
- 2. 註冊與註冊郵箱
- 3. 使用YII框架將用戶註冊電子郵件發送到用戶的電子郵件收件箱
- 4. 發送電子郵件的用戶註冊後在Rails 4.0
- 5. 發送電子郵件給用戶在註冊後反應
- 6. 軌道 - 電子郵件激活後用戶註冊
- 7. 發送給用戶歡迎電子郵件註冊後在php
- 8. Joomla電子郵件註冊
- 9. 使用任何電子郵件ID的用戶註冊郵件
- 10. 在moodle註冊掛鉤後
- 11. 沙箱用戶iOS電子郵件
- 12. 註冊後註冊用戶
- 13. Moodle電子郵件模板
- 14. Moodle:註冊一個LDAP用戶組
- 15. Laravel 4.1使用電子郵件激活的新用戶註冊
- 16. RoR設計用電子郵件或用戶名註冊
- 17. 使用電子郵件作爲用戶名與Django的註冊
- 18. 使用用戶,電子郵件和密碼進行Firebase註冊
- 19. 禁用用戶註冊電子郵件在Joomla 3.5
- 20. 用電子郵件註冊用戶確認和驗證碼?
- 21. Laravel 5.1如何在註冊後發送電子郵件驗證電子郵件?
- 22. 如何在用戶加入電子郵件列表後隱藏電子郵件註冊表單?
- 23. 使用meteor js成功註冊用戶後發送電子郵件
- 24. 在註冊時獲取Facebook用戶電子郵件
- 25. django註冊 - 允許多個用戶的電子郵件ID
- 26. wordpress刪除電子郵件時,用戶註冊
- 27. 註冊表單不發送電子郵件給用戶
- 28. 註冊不帶電子郵件地址的Firebase用戶
- 29. 註冊用戶:驗證碼和確認電子郵件?
- 30. Backand:更新註冊用戶電子郵件和名稱
有關當前Moodle Events API 2.0的信息位於此處:https://docs.moodle.org/dev/Event_2 –
我們可以爲Moodle 3.3+更新此更新嗎? –