2017-07-25 213 views
1

我正在製作一個代碼以從產品標題獲取產品對象。 我正在從我的記事本文件中讀取產品標題並將其傳遞給Wordpress功能。WooCommerce從產品標題獲取產品對象

以下是$pval是產品名稱的功能。

$productdetail_by_title = get_page_by_title($pval, OBJECT, 'product'); 
print_r($productdetail_by_title); 
exit; 

產品標題是這樣的:200x Slopupovací pleťová Rusk

但我沒能獲得產品對象。如果我這樣靜態地通過這個標題:

$productdetail_by_title = get_page_by_title("200x Slopupovací pleťová Rusk", OBJECT, 'product'); 
print_r($productdetail_by_title); 
exit; 

然後我能夠獲得產品對象。請幫忙。

回答

0

隨着get_page_by_title() WordPress的功能,你不會得到WC_Product objet,但如果它的工作,你會得到WP_Post對象。

因此,這裏是一個定製的功能,將輸出WC_Product對象,如果標題與真實的產品名稱相匹配:

function get_wc_product_by_title($title){ 
    global $wpdb; 

    $post_title = strval($title); 

    $post_table = $wpdb->prefix . "posts"; 
    $result = $wpdb->get_col(" 
     SELECT ID 
     FROM $post_table 
     WHERE post_title LIKE '$post_title' 
     AND post_type LIKE 'product' 
    "); 

    // We exit if title doesn't match 
    if(empty($result[0])) 
     return; 
    else 
     return wc_get_product(intval($result[0])); 
} 

代碼放在您的活動子主題的function.php文件(或主題)還是在任何插件文件中。

實例:

// Your title set in a variable 
$title = "200x Slopupovací pleťová Rusk"; 

// Using our custom function to get an instance of the WC_Product object 
$product_obj = get_wc_product_by_title($title); 

// Testing the output 
print_r($product_obj); 

此代碼對WooCommerce 3+和工程測試。