您正在将事务详细信息保存为post meta中的序列化对象,然后尝试搜索特定的订单ID。您的问题如下:
$data = get_post_meta( $ggowlccpy_order_id, $key = \'_ggowlccpy_refund_details_get\',
$single = false );
get_post_meta
需要post ID,但您正在将要搜索的订单ID传递给它。
如何搜索订单ID?问题是它被打包到一个序列化对象中。一种方法是还将订单ID存储为单独的元值,以便您可以直接搜索它,例如(未测试抱歉)
add_post_meta( $post->ID, \'_ggowlccpy_merchant_ref\', $ggowlccpy_order_id);
$meta_query = new WP_Meta_Query(array(
meta_key = \'_ggowlccpy_merchant_ref\',
meta_value = $ggowlccpy_order_id,
compare = \'=\'));
$orders = $wpdb->get_results($meta_query->get_sql( \'post\', $wpdb->posts, \'ID\' ));
无法匹配现有的序列化值:您正在对其进行base64编码,以隐藏数据库中的值。(至少我想这是为了掩盖它:通常不需要对PHP序列化值的输出进行base64编码。)如果这不是base64编码的,则您可以(例如)序列化订单ID,然后搜索\\u ggowlcpy\\u return\\u details\\u获取与序列化订单ID类似(即包含为子字符串)的值,然后反序列化所有结果,并检查每个结果的商户\\u ref=订单ID,直到找到正确的结果。然而,如果您确实需要通过这个查询,那么我认为一个单独的新post\\u meta值更容易更好。