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 中。仍在努力..........