我正在構建一個將自定義帖子類型「預訂」添加到儀表板的wordpress插件。此帖子類型允許管理員創建預訂表單並將其分配給用戶(從用戶的下拉列表中) - 該信息(即,所選用戶)作爲'wedding_user'存儲在wp_postmeta數據庫表中。Wordpress在創建自定義帖子類型時向選定用戶發送電子郵件
我想要做的是在預訂(郵政類型)創建時向選定的用戶發送電子郵件。
這是我到目前爲止,我知道這將在創建自定義帖子類型時發送電子郵件,但是如何在那裏添加選定的用戶電子郵件地址?
輸出的var_dump($_POST);
array(59) {
["_wpnonce"]=> string(10) "0d5335d18f"
["_wp_http_referer"]=> string(60) "/distractions-login/wp-admin/post-new.php?post_type=bookings"
["user_ID"]=> int(1)
["action"]=> string(8) "editpost"
["originalaction"]=> string(8) "editpost"
["post_author"]=> int(1)
["post_type"]=> string(8) "bookings"
["original_post_status"]=> string(10) "auto-draft"
["referredby"]=> string(79) "http://www.skizzar.com/distractions-login/wp-admin/post.php?post=80&action=edit"
["_wp_original_http_referer"]=> string(79) "http://www.skizzar.com/distractions-login/wp-admin/post.php?post=80&action=edit"
["auto_draft"]=> string(1) "1"
["post_ID"]=> string(2) "81"
["meta-box-order-nonce"]=> string(10) "14fd434c70"
["closedpostboxesnonce"]=> string(10) "2b04c74cd9"
["post_title"]=> string(15) "Test Booking 13"
["samplepermalinknonce"]=> string(10) "4589b08166"
["wp-preview"]=> string(0) ""
["hidden_post_status"]=> string(5) "draft"
["post_status"]=> string(7) "publish"
["hidden_post_password"]=> string(0) ""
["hidden_post_visibility"]=> string(6) "public"
["visibility"]=> string(6) "public"
["post_password"]=> string(0) ""
["mm"]=> string(2) "12"
["jj"]=> string(2) "03"
["aa"]=> string(4) "2015"
["hh"]=> string(2) "11"
["mn"]=> string(2) "05"
["ss"]=> string(2) "06"
["hidden_mm"]=> string(2) "12"
["cur_mm"]=> string(2) "12"
["hidden_jj"]=> string(2) "03"
["cur_jj"]=> string(2) "03"
["hidden_aa"]=> string(4) "2015"
["cur_aa"]=> string(4) "2015"
["hidden_hh"]=> string(2) "11"
["cur_hh"]=> string(2) "11"
["hidden_mn"]=> string(2) "05"
["cur_mn"]=> string(2) "05"
["original_publish"]=> string(7) "Publish"
["publish"]=> string(7) "Publish"
["booking_details"]=> string(10) "54291c7a09"
["wedding_name"]=> string(15) "Test Booking 13"
["wedding_user"]=> string(9) "Test User"
["wedding_date"]=> string(10) "30/12/2015"
["wedding_package"]=> string(9) "Package 1"
["wedding_price"]=> string(5) "45768"
["wedding_payment_due_date"]=> string(10) "28/01/2016"
["wedding_hidden_todays_date"]=> string(10) "03/12/2015"
["wedding_hidden_is_viewed"]=> string(0) ""
["wedding_hidden_is_completed"]=> string(0) ""
["wedding_hidden_date_completed"]=> string(0) ""
["deposit_paid"]=> string(0) ""
["full_paid"]=> string(0) ""
["post_name"]=> string(0) ""
["post_mime_type"]=> string(0) ""
["ID"]=> int(81)
["comment_status"]=> string(6) "closed"
["ping_status"]=> string(6) "closed"
}
下面
function notify_client($post_ID) {
// a conditional to check that this is a new post
if(($_POST['post_status'] == 'publish') && ($_POST['original_post_status'] != 'publish')) {
$user_email_address = USER EMAIL ADDRESS
// create the from details
$headers[] = 'From: Bookings <[email protected]>';
// lets cc in the head just because we can
$headers[] = 'Cc: Joseph Malik <[email protected]>';
// separate the users array
$send_to = $user_email_address;
// concatenate a message together
$message = 'Test Message';
// and finally send the email
wp_mail($send_to, "Test Message", $message, $headers);
return $post_ID;
}
}
add_action('publish_bookings', 'notify_client');
是用來渲染的元框自定義職位類型代碼:
public function bookings_meta_boxes() {
add_meta_box(
'booking_details',
'Booking Details',
array($this, 'render_meta_boxes'),
'bookings',
'normal',
'high'
);
}
function render_meta_boxes($post) {
wp_nonce_field(basename(__FILE__), 'booking_details');
$prfx_stored_meta = get_post_meta($post->ID);
<p>
<label for="wedding_user" class="prfx-row-title"><?php _e('Wedding Guest', 'prfx-textdomain')?></label>
<select name="wedding_user" id="wedding_user">
<?php
$users = get_users();
$i = 0;
// Array of WP_User objects.
foreach ($users as $user) {
echo "<option value='".esc_html($user->display_name)."' ";
if (isset($prfx_stored_meta['wedding_user']))
echo selected($prfx_stored_meta['wedding_user'][0], esc_html($user->display_name));
echo ">" . esc_html($user->display_name) . "</option>";
}
?>
</select>
</p>
...
}
'get_userdata($ _ POST [ 'wedding_user']) - > USER_EMAIL;'或者類似的 - 沒有真正的方法來幫助沒有更多的信息 – Steve
感謝@Steve - 不幸的是沒沒有工作。我可以給你什麼額外的信息? –
婚禮用戶如何存儲在帖子中?作爲元場?基本上,你會在'$ _POST'數據中找到用戶標識(我用'$ _POST ['wedding_user']'作爲例子,因爲我不知道確切的結構) - 如果你使用的是像xdebug這樣的debuuger,set一個斷點並檢查'$ _POST' - 如果不是'var_dump($ _ POST);'那麼你將能夠看到如何訪問userid – Steve