Calculations in functions.php

时间:2017-12-10 作者:Jen

我为自己创建了一个发票主题,并试图在自定义列中获取发票总额。

我已经尝试调整模板页面中使用的代码,以便在函数中显示这一点。php文件,但它不工作。

我的乘法操作数出现了一个操作数错误,我不知道为什么。

这是我的代码(如有任何帮助,将不胜感激)。

if( $column_name == \'invoice_total\' ) {
    $hours = 0; // This allows counting of each sub_field

    //* Set repeater variables

    $service_amount = get_post_meta( get_the_ID(), \'invoice_service_amount\' );
    $service_quantity = get_post_meta( get_the_ID(), \'invoice_service_quantity\' );

    $line_total = get_post_meta( get_the_ID(), \'invoice_service_quantity\' ) *  get_post_meta( get_the_ID(), \'invoice_service_amount\' );
    $hours += intval( get_post_meta( get_the_ID(), \'invoice_service_quantity\' ) ); //intval: Get the integer value of a variable
    $late_fee =  get_post_meta( get_the_ID(), \'late_fee\' );
    $hours_amount = get_post_meta( get_the_ID(), \'invoice_service_amount\' );

    global $running_total;
    global $running_total_late;
        $running_total += get_post_meta( get_the_ID(), \'invoice_service_amount\' ) * get_post_meta( get_the_ID(), \'invoice_service_quantity\' );
        $running_total_late += $running_total + get_post_meta( get_the_ID(), \'late_fee\' );

    echo \'$\'. $running_total;
}
我得到的错误是$running_total 与乘法操作数对齐。

我还应该指出,我正在使用ACF Pro构建我的发票表单,金额和数量位于重复字段中。

TIA!

1 个回复
SO网友:Jared Cobb

在那些线路上get_post_meta() 将返回一个数组,因为默认情况下third argument of get_post_meta() is false.

如果要返回单个值,应这样调用:

get_post_meta( get_the_ID(), \'invoice_service_amount\', true );
此外,您可能希望先获取post meta,然后确保有一个值(将乘法封装在条件语句中以避免错误)。可能类似于:

$invoice_service_amount = get_post_meta( get_the_ID(), \'invoice_service_amount\', true );
$invoice_service_quantity = get_post_meta( get_the_ID(), \'invoice_service_quantity\', true );
if ( ! empty( $invoice_service_amount ) && ! empty( $invoice_service_quantity ) ) {
    $line_total = absint( $invoice_service_amount ) * absint( $invoice_service_quantity );
else {
    $line_total = 0;
}

结束

相关推荐

使用AJAX和PHP检查新消息。服务器超载?

我写了一个脚本(可能不太完美,我是新手)每X分钟检查一次新消息(使用ArrowChat和Buddypress)。它工作得很好,但我担心它会使我的服务器过载吗?它是共享的。代码:PHP// Prepare database global $wpdb; $wpdb->prepare; // Check are there new messages $query = $wpdb->get_results( \'SELECT `id` FROM `arrowc