回显窗体上未传递的函数值(&A;T)

2022-07-02 00:00:00 forms php wordpress payment-gateway echo
-更新:正在尝试寻找不同的解决方案here, please take a look 我正试图发布一个与隐藏的价值在一个商店平台与支付网关接收价值的表格。 值名称"Order_Total"使用名为"$sum"的php回显来显示要支付的金额:

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

$sum是读取用户订单ID金额的函数

$order_total    = left_to_pay_for_order($oid);

该函数的工作方式如下:

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;
}

支付网关接收除$ORDER_TOTAL值之外的所有其他值。

更新!! 传递的值为"0"-您认为可能会发生这种情况吗?

我已经测试过了,该函数在发送表单和重定向之前工作,发送前的任何HTML上根据预期结果显示总和,但表单发送值为"0"。

我做错了什么?到处都找遍了。非常感谢您的帮助。

谢谢!!

根据请求,下面是按StackOverflow代码修改的整个表单页面:

    <?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>

解决方案

请告诉我们您在"检查"中看到了什么。POST之前输入中的值是什么。

但是。根据您提供的信息,我认为:

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".

相关文章