Use $add_number
if $sub_number
is 0
, else use $sub_number
:
$sorting = null;
$paging = array( 'offset' => 0, 'page_size' => $page_size );
$entries = GFAPI::get_entries($formid, $search_criteria, $sorting, $paging);
$countentries = GFAPI::count_entries( $formid, $search_criteria );
if(!$sub_number) {
$countentries_add = $add_number + $countentries;
if ( !empty( $number_field ) ) {
$gwp_count = $add_number;
for ($row = 0; $row < $countentries ; $row++) {
$gwp_count += $entries[$row][$number_field];}
return number_format($gwp_count * $multiply, $decimals,
$dec_point, $thousands_sep);
} else {
return number_format($countentries_add * $multiply, "0", ".",
$thousands_sep);
}
} else {
$countentries_sub = $sub_number - $countentries;
if ( !empty( $number_field ) ) {
$gwp_count = $sub_number;
for ($row = 0; $row < $countentries ; $row++) {
$gwp_count -= $entries[$row][$number_field];}
return number_format($gwp_count * $multiply, $decimals,
$dec_point, $thousands_sep);
} else {
return number_format($countentries_sub * $multiply, "0", ".",
$thousands_sep);
}
}
The loop will still increase the row count, you can’t count row numbers down from 0.
Or if you know $add_number
is negative only if you want to subtract, you can use:
$sorting = null;
$paging = array( 'offset' => 0, 'page_size' => $page_size );
$entries = GFAPI::get_entries($formid, $search_criteria, $sorting, $paging);
$countentries = GFAPI::count_entries( $formid, $search_criteria );
$countentries_add = $add_number + $countentries;
if ( !empty( $number_field ) ) {
$gwp_count = $add_number;
for ($row = 0; $row < $countentries ; $row++) {
$gwp_count += $entries[$row][$number_field];}
if($add_number < 0) $gwp_count *= -1;
return number_format($gwp_count * $multiply, $decimals,
$dec_point, $thousands_sep);
} else {
if($add_number < 0) $countentries_add *= -1;
return number_format($countentries_add * $multiply, "0", ".",
$thousands_sep);
}