WooCommerce 从产品标题中获取产品 object

WooCommerce Get the product object from the product title

我正在编写代码以从产品标题中获取产品 object。 我正在从我的记事本文件中读取产品标题并将其传递给 Wordpress 函数。

下面是一个函数,其中$pval是产品标题。

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

产品标题是这样的:200x Slopupovací pleťová Rusk

但我无法获得产品 object。如果我像这样静态传递这个标题:

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

然后我就能得到产品object。请帮忙。

get_page_by_title() WordPress function, you will not get the WC_Product objet but if it's working you will get the WP_Post object.

所以这是一个自定义函数,如果标题与真实产品标题匹配,它将输出 WC_Product object:

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] ) );
}

代码进入您的活动 child 主题(或主题)的 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+ 上测试并有效。