0

我想使用“自定义”隐藏表单字段将一些自定义数据发送到 Paypal Checkout。当不使用 SimpleCart.js 时,这就像将其附加到 html 表单一样简单:

<input type="hidden" name="custom" value="My Custom data">

知道如何使用 simplecart 实现相同的目标吗?

查看源代码,我可以看到创建/提交表单的位置。

generateAndSendForm: function (opts) 
{
    var form = simpleCart.$create("form");
    form.attr('style', 'display:none;');
    form.attr('action', opts.action);
    form.attr('method', opts.method);
    simpleCart.each(opts.data, function (val, x, name) 
    {
        form.append(
            simpleCart.$create("input").attr("type","hidden").attr("name",name).val(val)
        );
    });
    simpleCart.$("body").append(form);
    form.el.submit();
    form.remove();
}

所以,我可以修改这段代码以使其工作,但我确信一定有更好的方法。有人有想法么?

4

2 回答 2

1

在简单的购物车中添加任何额外的东西需要添加一个简单的类......

例如,

<input type="hidden" name="custom" value="My Custom data" class="item_customdataname">

注意我的班级和命名法。“item_customdataname”。

但是,由于 simplecart 的性质,我建议以下内容;

<span style="display: none;" class="item_customdataname">My Custom data</span>

并不是说使用隐藏的输入是行不通的......

于 2013-09-16T01:24:03.000 回答
0

旧线程,但对其他人可能很有趣。您正在查看错误的方法:

生成并发送表单:

用于生成将(很可能)将数据发布到后端的表单

您要查看的是:

simpleCart.extendCheckout({
  PayPal: function (opts) {
  [...]

您可能需要添加:

if (opts.custom) {
  data.custom = opts.custom;
}

在通知等价物之后的某处:

if (opts.notify) {
 data.notify_url = opts.notify;
}

我没有亲自测试过,但它应该完全符合您的需要

于 2014-09-10T14:40:17.623 回答