首页 > 解决方案 > 您如何使用数据库元键和值?

问题描述

我正在尝试使用 SQL 来检索 Woocommerce 订单项元键和值,以便我可以在自己的报告中总结信息,但我真的很难将元键和值提取为列。任何人都可以提供任何 SQL 示例吗?是否有可用于元数据的 Wordpress API?

我尝试创建以下 SQL 作为扩展产品信息查询的基础。它返回正确类型的数据,但只返回一行:

SELECT O.order_item_id, O.order_item_name,
    MAX(IF(OIM.meta_key = 'class', OIM.meta_value, NULL)) AS class
FROM wp_woocommerce_order_items AS O
LEFT JOIN wp_woocommerce_order_itemmeta AS OIM on O.order_item_id = 
OIM.order_item_id
WHERE O.order_item_name='Smiths Night School';

谢谢

标签: sqlwordpresswoocommerce

解决方案


我很高兴你得到它!这是学习事物的最佳方式。为了帮助您,我将向您展示在 WordPress (PHP) 中执行此操作的正确方法:

<?php

//DB
global $wpdb; 

//Get results from the database
$results = $wpdb->get_results( "SELECT O.order_item_id, O.order_item_name, MAX(CASE WHEN OIM.meta_key = 'class' THEN OIM.meta_value END) AS 'class', MAX(CASE WHEN OIM.meta_key = 'fee-type' THEN OIM.meta_value END) AS 'fees' FROM wp_woocommerce_order_items O INNER JOIN wp_woocommerce_order_itemmeta OIM ON O.order_item_id = OIM.order_item_id WHERE O.order_item_name='Smiths Night School' GROUP BY O.order_item_id, O.order_item_name" );

foreach ( $results as $result ) {
    echo $result->your_field_from_the_table;
}

WordPress 定义了一个名为 的类wpdb,其中包含一组用于与数据库交互的函数。这是使用此类的好方法,因为它简单且节省。

您也不需要在任何 PHP 文件中定义您的数据库passworduser数据库(如果您使用 PHP 数据库功能,您需要做什么)。如果您使用wpdb,则此信息直接来自wp-config.php文件,这更安全一些。


推荐阅读