用戶個人資料表格中添加了一個複選框,訂閱每日通訊。我想獲得已訂閱的用戶列表(複選框打開)並將其發送給每日通訊。我如何在drupal-6中做到這一點。 (1)獲得所有訂閱用戶的列表(2)發送他們的電子郵件。如何獲取drupal自定義配置文件值?
如果你可以在代碼級解釋,我會非常感激。
用戶個人資料表格中添加了一個複選框,訂閱每日通訊。我想獲得已訂閱的用戶列表(複選框打開)並將其發送給每日通訊。我如何在drupal-6中做到這一點。 (1)獲得所有訂閱用戶的列表(2)發送他們的電子郵件。如何獲取drupal自定義配置文件值?
如果你可以在代碼級解釋,我會非常感激。
如果您的個人資料字段profile_newsletter,您:
<?php
function mymodule_get_subscribers() {
$query = 'select * from {profile_fields} where `name`="%s";';
$result = db_query($query,'profile_newsletter');
$field = db_fetch_object($result);
$user_query = 'select * from {profile_values} where `fid`=%d and `value`=1;';
$result = db_query($user_query,$field->fid);
$subscribers = array();
while($subscriber = db_fetch_object($result)) {
$subscribers[] = $subscriber->uid;
}
return $subscribers; // Your array of subscriber user IDs
}
?>
此代碼是快,是未經測試,或許應該包含一些理智的檢查。但它應該工作。
對於發送通訊等我建議使用預卷模塊。我還沒有爲Drupal做過任何嘗試,但Simplenews似乎有訣竅。 http://drupal.org/project/simplenews
如果沒有別的,它可能包含一個很好的發送函數。否則,只需使用PHP郵件() - 函數。
function your_custom_function ($user_id, "Field you want to get") {
$result = db_query("SELECT t2.value FROM profile_fields t1, profile_values t2 where
t1.title='Field you want to get' and t2.uid=".$user_id." and t1.fid=t2.fid");
$field = db_fetch_object($result);
$profile_type =$field->value;
return $profile_type;
}
使用此函數可以獲得單個配置文件字段值,因此我們可以避免使用單獨的模塊將配置文件字段作爲令牌 – gobinathan 2012-08-29 06:32:06
真的很好的幫助...噸謝謝:) – Dev 2010-10-29 11:46:07
只是在說聲謝謝你。這使我指出了一個好方向! – Richard 2012-03-30 16:10:18