WordPress PHP 获取每个 post 个永久链接
WordPress PHP getting each post permalinks
我想写一个函数来发送电子邮件。在邮件中,我想向客户发送他们订购的商品以及他们的每个产品 permalinks that link to wordpress product pages.
public function mailout($post_id = 106){
global $wpdb;
$mail = get_post_meta( $post_id, '_billing_email', true );
$product_name = $wpdb->get_results("SELECT order_item_name FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = '$post_id' AND order_item_type = 'line_item'");
for($i = 0; $i < count($product_name); $i++){
$post_data[$i] = $product_name[$i]->order_item_name;
$get_postID[$i] = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_title = '$post_data[$i]' ");
$prod_url[$i] = get_post_permalink($get_postID[$i]);
}
$t= get_post_permalink(106);
// $to = $mail;
// $subject = 'Test';
// $message = 'Thank you for purchasing! Please help us in reviewing our products.';
// $headers[] = 'From: <donotreply@test.com>';
// wp_mail( $to, $subject, $message, $headers );
}
我设法获得正确的 post ID 并使用它来获得 post permalink 但它似乎 return 我都一样“http://localhost/domainname" 用于所有指向主页的循环。
我如何更改它并使其在电子邮件中显示一些示例格式,例如以下格式,其中 permalinks 位于产品名称旁边?或者如果您有任何其他方法可以缩短此代码
示例结果---(产品一:http://localhost/domainname)
解决了为每个产品页面获取永久链接的问题
public function mailout($post_id = 106){
global $wpdb;
$mail = get_post_meta( $post_id, '_billing_email', true );
$product_name = $wpdb->get_results("SELECT order_item_name FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = '$post_id' AND order_item_type = 'line_item'");
for($i = 0; $i < count($product_name); $i++){
$post_data[$i] = $product_name[$i]->order_item_name;
foreach ($post_data as $pd){
$pd = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_title = '$post_data[$i]' ");
}
foreach($pd as $pdd){
$prod_url[] = get_post_permalink($pdd);
}
$data_array = array('Product name' => $post_data, 'permalink' => $prod_url);
}
return $data_array;
// $to = $mail;
// $subject = 'Product Review';
// $message = 'Thank you for purchasing! Please help us in reviewing our products.'. $data_array;
// $headers[] = 'From: <donotreply@leminiscate.com>';
// wp_mail( $to, $subject, $message, $headers );
}
对于某些问题,我不知道为什么或如何将此 $prod_url 放入要发送的 $message 中。仍在努力..........
我想写一个函数来发送电子邮件。在邮件中,我想向客户发送他们订购的商品以及他们的每个产品 permalinks that link to wordpress product pages.
public function mailout($post_id = 106){
global $wpdb;
$mail = get_post_meta( $post_id, '_billing_email', true );
$product_name = $wpdb->get_results("SELECT order_item_name FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = '$post_id' AND order_item_type = 'line_item'");
for($i = 0; $i < count($product_name); $i++){
$post_data[$i] = $product_name[$i]->order_item_name;
$get_postID[$i] = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_title = '$post_data[$i]' ");
$prod_url[$i] = get_post_permalink($get_postID[$i]);
}
$t= get_post_permalink(106);
// $to = $mail;
// $subject = 'Test';
// $message = 'Thank you for purchasing! Please help us in reviewing our products.';
// $headers[] = 'From: <donotreply@test.com>';
// wp_mail( $to, $subject, $message, $headers );
}
我设法获得正确的 post ID 并使用它来获得 post permalink 但它似乎 return 我都一样“http://localhost/domainname" 用于所有指向主页的循环。
我如何更改它并使其在电子邮件中显示一些示例格式,例如以下格式,其中 permalinks 位于产品名称旁边?或者如果您有任何其他方法可以缩短此代码
示例结果---(产品一:http://localhost/domainname)
解决了为每个产品页面获取永久链接的问题
public function mailout($post_id = 106){
global $wpdb;
$mail = get_post_meta( $post_id, '_billing_email', true );
$product_name = $wpdb->get_results("SELECT order_item_name FROM {$wpdb->prefix}woocommerce_order_items WHERE order_id = '$post_id' AND order_item_type = 'line_item'");
for($i = 0; $i < count($product_name); $i++){
$post_data[$i] = $product_name[$i]->order_item_name;
foreach ($post_data as $pd){
$pd = $wpdb->get_results("SELECT ID FROM $wpdb->posts WHERE post_title = '$post_data[$i]' ");
}
foreach($pd as $pdd){
$prod_url[] = get_post_permalink($pdd);
}
$data_array = array('Product name' => $post_data, 'permalink' => $prod_url);
}
return $data_array;
// $to = $mail;
// $subject = 'Product Review';
// $message = 'Thank you for purchasing! Please help us in reviewing our products.'. $data_array;
// $headers[] = 'From: <donotreply@leminiscate.com>';
// wp_mail( $to, $subject, $message, $headers );
}
对于某些问题,我不知道为什么或如何将此 $prod_url 放入要发送的 $message 中。仍在努力..........