第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 WooCommerce 中僅獲取有關產品查詢的特定數(shù)據(jù)

在 WooCommerce 中僅獲取有關產品查詢的特定數(shù)據(jù)

PHP
慕的地6264312 2022-01-24 10:24:23
我正在嘗試將 WooCommerce 中的所有產品放在一個數(shù)組中,稍后我將使用它與外部數(shù)據(jù)庫同步。在下面的代碼中,我使用的wc_get_products()函數(shù)為每個產品返回大量數(shù)據(jù)(我大部分不需要):$args = array('status' => 'publish','limit' => -1,);$wooExistingProducts = wc_get_products($args);相反,我能做些什么來只獲取產品 ID、產品名稱和產品價格?對于每種產品,我都希望有類似的東西:[{id: 315892135,name: Food for Hamsterprice: 5$}{id: 129414,name: ....price:...}....]我嘗試使用 aWP_Query代替,但沒有提供更好的解決方案。
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

TA貢獻1862條經驗 獲得超6個贊

實際上wc_get_products()唯一可用的過濾器是'return' => 'ids'在使用WC_Product_Query.


解決方案是使用帶有 WordPress WPDB類的直接 SQL 查詢,因為它是在產品查詢中獲取所需數(shù)據(jù)的更輕松、最有效的方法。


在以下查詢中,我們必須排除可變產品,因為它們有多個價格(每個變體一個):


global $wpdb;


$products_query = $wpdb->get_results( "

    SELECT  p.ID AS id,

            p.post_title AS name,

            Max(CASE WHEN pm.meta_key = '_price' AND  p.ID = pm.post_id THEN pm.meta_value END) AS price

    FROM    {$wpdb->prefix}posts p

            INNER JOIN {$wpdb->prefix}postmeta pm

                ON p.ID = pm.post_id

    WHERE   p.post_type = 'product'

            AND p.post_status = 'publish'

            AND p.post_parent != 0

    GROUP BY p.ID

    ORDER BY p.ID ASC;

" );


// Testing raw output

echo '<pre>'; print_r( $products_query ); echo '</pre>'; 

包括產品變化 (選項):


如果要包含可變產品的產品變體,則應替換此行:


WHERE   p.post_type = 'product'

經過:


WHERE   p.post_type IN ('product','product_varation')

我不建議您在您的情況下使用wc_get_products()or get_posts() (WP_Query):


因為您還將獲得可變產品(根據(jù)其變化具有多種價格)

因為它更重(即使您只查詢'ids'字段,只獲取產品 ID),因為您必須為每個產品設置數(shù)據(jù),進行多個數(shù)據(jù)庫查詢。


查看完整回答
反對 回復 2022-01-24
  • 1 回答
  • 0 關注
  • 227 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號