Echo function value will not be passed in the form

---- UPDATE: while trying to find another solution here please take a look ------- I am trying to submit a form with hidden values ​​on a merchant platform with a payment gateway to get values. The value name "Order_Total" uses php echo called "$ sum" to display the amount to be paid like this:

<Input type="hidden" name="sum" value="<?php echo $order_total; ?>"> 

      

$ sum is a function that reads the sum of the user's order id

$order_total    = left_to_pay_for_order($oid);

      

the function works like this:

function left_to_pay_for_order($oid)
{


global $wpdb;
    $s = "select * from ".$wpdb->prefix."order_contents where orderid='$oid' and paid='0'";
    $r = $wpdb->get_results($s);
    $total = 0;
    if(count($r) > 0)
    {
        foreach ($r as $row)
        {
            $total += $row->price * $row->quant;    
            $shp = get_post_meta($row->pid, 'shipping', true)* $row->quant;
            $total += $shp;
        }

    }

return $total;
}

      

The payment gateway gets all other values ​​except for the $ order_total value.

UPDATE !!! -------------------------------- Value passed as "0" - any thoughts you may have?

I tested and the function works before the form is submitted and redirected, displaying the amount as expected on any HTML before submitting, but the form is submitting the value "0".

what am I doing wrong? searched everywhere. your kind help is greatly appreciated.

Thank!

As requested, here's the entire page form page - changed for each stack:

    <?php

    global $wp_query, $wpdb, $current_user;

    get_currentuserinfo();
    $uid = $current_user->ID;
    $user_email = $current_user->user_email;

    $business = get_option('Theme_tranzilla_ID');
    if(empty($business)) die('ERROR. Please input your tranzilla ID.');
    //-------------------------------------------------------------------------
    $oid = $_GET['oid'];    
    $order_total = Theme_left_to_pay_for_order($oid);
    $title_post = sprintf(__('Order Payment ID #: %s','Walleto'), $oid);


    //---------------------------------


    $tm             = current_time('timestamp',0);
    $cancel_url     = get_bloginfo("siteurl");
    $response_url   = get_bloginfo('siteurl').'/?w_action=tranzila_order_response';
    $ccnt_url       = Theme_my_account_link();
    $currency       = get_option('Theme_currency');

?>


<html>
<head><title>Processing Tranzilla Payment...</title></head>
<body onLoad="document.form_mb.submit();">
<center><h3><?php _e('Please wait, your order is being processed...', 'Theme'); ?></h3></center>

<FORM name="form_mb" Action='https://direct.tranzila.com/Terminal_Name/' method='POST'>
<Input type="hidden" name="supplier" value="<?php echo get_option('Theme_tranzilla_ID') ?>"> 
<Input type="hidden" name="sum" value="<?php echo $order_total; ?>"> 
<Input type="hidden" name="currency" value="1"> 
<input type="hidden" name="email" value="<?php echo $user_email; ?>">

</FORM>




</body>
</html>

      

+3


source to share


1 answer


Please tell us what you see in the "checkout" .. what is the value in the input file before posting.

But .. with the information you give, I think:



1) You are missing a ; in the end of "echo $order_total" line. Put a ; in the end.
2) It can be some wordpress conflict with the "sum" field name. Try to change to "order_total".

      

0


source







All Articles