对 Woocommerce Order itemmeta 表中的 2 个元键进行 SQL 查询

我需要通过 REST API 在 Bitrix24 CRM 中填写自定义字段。


当谈到处理标准字段(如 TITLE、TEL 等)时,它可以工作,但如果我尝试通过将自定义字段的属性名称放在请求中来确定自定义字段的价值,端点就会忽略它。


这里有一个片段:


$company = CRest::call(

    'crm.company.add',

    [

        'fields' => [

              "TITLE" => "Company 1"

            , "COMPANY_TYPE" => "Customer"

            , "CURRENCY_ID" => 'EUR'

            , "REVENUE" => "123000"

            , "ADDRESS" => "st. some address"

            , "ADDRESS_CITY" => "some city"

            , "ADDRESS_POSTAL_CODE" => "12345"

            , "ADDRESS_PROVINCE" => "some province"

            , "PHONE" => [

                         ["VALUE" => "1230000000", "VALUE_TYPE" => "WORK"]

                        ,["VALUE" => "1234000000", "VALUE_TYPE" => "FAX"]

                     ]

            , "EMAIL" => [ ["VALUE" => "me@company1.com", "VALUE_TYPE" => "WORK"] ]

            , "INDUSTRY" => "MANUFACTURING"

            , "CUSTOM_FIELD" => "Hey I'm not a standard field and I'm going to be ignored"

        ]

    ]

);

有人有同样的需求吗?我该如何解决?


开满天机
浏览 207回答 1
1回答

隔江千里

您需要另一次 使用自己的参考JOIN表,因为您正在该表上查询 2 次不同的元键,因此请尝试以下操作:wp_woocommerce_order_itemmetafunction get_last_order_id_from_product( $product_id ) {    global $wpdb;    return $wpdb->get_col( $wpdb->prepare( "        SELECT oi.order_id        FROM {$wpdb->prefix}woocommerce_order_items as oi        LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta as oim            ON oi.order_item_id = oim.order_item_id        LEFT JOIN {$wpdb->prefix}woocommerce_order_itemmeta as oim2            ON oi.order_item_id = oim2.order_item_id        LEFT JOIN {$wpdb->posts} AS p            ON oi.order_id = p.ID        WHERE p.post_type = 'shop_order'        AND oi.order_item_type = 'line_item'        AND oim.meta_key = '_product_id'        AND oim.meta_value = '%d'        AND oim2.meta_key = 'Ticket Number'        ORDER BY oi.order_id DESC        LIMIT 1, 1    ", $product_id ) );}测试和工作。
打开App,查看更多内容
随时随地看视频慕课网APP