我有以下代码(编辑以减小尺寸),但没有按预期工作。 update_post_meta未更新。 如果我按原样使用它,它什么都不做,但如果我取消注释最后两行并打印出结果,然后是die;,那么函数工作并且update_post_meta工作,并更新自定义字段。
任何想法??
function swd_add_time_as_line_item($post_id) {
$invoice_id = $post_id;
$title = $_POST['time_tracker_add_title'];
$description = $_POST['time_tracker_add_desc'];
$qty = '1';
// store the data in array
$arr = array("swd_billing_qty" => $qty, "swd_billing_title" => $title, "swd_billing_description" => $description, "swd_billing_amount" => '75' );
// get existing tasks, if they exist. will simply be empty if none exist
$existing_items = get_post_meta($invoice_id, 'swd_billing_item', true);
// add the array data to existing data, or simply adds it if there is none
$existing_items[] = $arr;
// update the post meta
update_post_meta($invoice_id, "swd_billing_item", $existing_items);
// pp($existing_items);
// die;
}
add_action('save_post', 'swd_add_time_as_line_item', 10, 1);
解决 我将以下代码添加到函数的底部,现在它正在运行。
$update = update_post_meta($invoice_id, "swd_billing_item", $the_items, $existing_items);
if($update == true) {
wp_safe_redirect('post.php?post=' . $invoice_id . '&action=edit&message=4');
die;
}