回显一个不会传递表单的函数值

时间:2015-01-01 12:05:00

标签: php wordpress forms echo payment-gateway

----更新:尝试寻找不同的解决方案here, please take a look ------- 我试图在带有支付网关的商店平台上发布带有隐藏值的表单以接收值。 值名称“Order_Total”使用名为“$ sum”的php echo来显示要支付的总和:

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

1 个答案:

答案 0 :(得分:0)

请告诉我们您在&#34;中检查的内容&#34; ...在发布之前输入的值是什么。

但是......有了你给出的信息,我想:

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