繁体   English   中英

echo函数值不会传递给表单

[英]echo a function value won't pass on a form

----更新:试图在这里找到一个不同的解决方案,请看一下 -------我试图在带有支付网关的商店平台上发布带有隐藏值的表单来接收值。 值名称“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) 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".

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM