Wordpress - 通过后端验证自定义字段

时间:2014-08-05 20:14:17

标签: php wordpress advanced-custom-fields

首先,我使用高级自定义字段插件,并且我使用了转发器。我有一个自定义帖子类型,在按下"发布"在创建新帖子时,它的作用是在我的转发器字段中添加一行。

Basiclly它从其他字段获取信息,并通过进行一些计算得出行创建的必须具有的正确信息。

这是我的功能:

function investment_save($post_id)
{    
    $post = get_post();
    $poststat = get_post_status($post_id);
    $fecha = current_time(d-M-Y);
    $fecha2 = "Inversión ".$fecha;
    if($poststat == "publish" && !have_rows('datos_especificos'))
    {
        remove_action( 'save_post', 'investment_save' );

        $my_post = array(
        'ID'           => $post_id,
        'post_title' => $fecha2,
        );
        wp_update_post( $my_post );

        $fech = get_field('fecha_de_inicio_de_la_inversion');
        $sald = get_field('monto_de_la_inversion');
        $tasa = get_field('tasa_de_interes');
        $cap = get_field('uso_de_interes');


        $elsald0 = $tasa/12*0.01*$sald;
        $elsald=number_format($elsald0,2);

        if($cap=="pagar")
        {
            $cap2=$elsald;
            $cantr=0;
        }else{
            $cap2=0;
            $cantr=$elsald;
        }

        $sf = $sald+$cantr;

        $field_key = "datos_especificos";
        $value = get_field($field_key, $post_id);
        $value[] = array("fecha" => $fech, 
                         "saldo" => $sald,
                         "inversion_en_el_periodo" => "0",
                         "interes_causado_en_el_periodo" => $elsald,
                         "cantidad_pagada" => $cap2,
                         "cantidad_reinvertida" => $cantr,
                         "saldo_final" => $sf);
        update_field( $field_key, $value, $post_id ); 
    }
}
add_action( 'save_post', 'investment_save' );

这是正常的,但是,我有一个新的任务,每次我按更新,我必须检查所有行中$ cr + $ cp是否等于$ icelp,如果不是,我必须调整它们的值,所以这是我想要使用的代码类型:

$sum = $cp + $cr;

    if($sum>$icelp)
    {
        $dif=$sum-$icelp;
        if($cp>=$cr)
        {
            $cp=$cp-$dif;
        }else
        {
            $cr=$cr-$dif;
        }
    }
    if($sum<$icelp)
    {
        $dif=$icelp-$sum;
        if($cp>=$cr)
        {
            $cr=$cr+$dif;
        }else
        {
            $cp=$cp+$dif;
        }
    }

我尝试使用&#34; else&#34;,也使用&#34; if&#34;,但我无法使其正常工作。请有人帮助我,我已经打了好几天

0 个答案:

没有答案