我为最后一个关联数组foreach循环提供了一个无效参数。我循环遍历不同的电子邮件地址并创建一个数组。难道我做错了什么?我应该创建一个空数组吗?
干杯!
global $wpdb, $wpsc_variations;
$stock_table = $wpdb->prefix . 'postmeta';
$posts_table = $wpdb->prefix . 'posts';
$q = 'SELECT DISTINCT post_id FROM ' . $stock_table . ' WHERE meta_key=\'' . NOTIFY_META . '\' AND meta_value=1';
$q_assoc_arr = $wpdb->get_results($q, ARRAY_A);
foreach($q_assoc_arr as $row) {
$product_id = $row['post_id'];
$product_data = get_post_custom( $product_id );
$product_data['meta'] = maybe_unserialize( $product_data );
foreach ( $product_data['meta'] as $meta_key => $meta_value ) {
$product_data['meta'][$meta_key] = $meta_value[0];
}
if ($product_data['meta']['_wpsc_stock'] > 0) {
foreach (get_post_meta($product_id, NOTIFY_EMAILS_META, true) as $k=>$v) {
$emails[] = $v;
}
答案 0 :(得分:1)
您的第三个foreach
依赖于get_post_meta的输出,但您将 true 作为第三个参数传递。这会告诉get_post_meta
将单个值作为字符串返回,而不是数组。
foreach
期望一个数组迭代。 :)
注意:此部分肯定会失败,但如果未传递数组,则foreach
的其他实例也可能失败。