1

views_form_commerce_cart_form_default数量変更時に ajax を送信できるようにフォームを変更しました。

私のajax属性は次のとおりです。

$ajax_field_settings = array(
  'event' => 'blur',
  'callback' => '_ajax_cart_update_cart',
  'method' => 'replace',
  'wrapper' => 'ajax-cart-form-wrapper',
  'progress' => array('type' => 'none'),
);

foreach (element_children($form['edit_quantity']) as $key) {
  $form['edit_quantity'][$key]['#ajax'] = $ajax_field_settings;
}

ajax コールバックは次のとおりです。

function _ajax_cart_update_cart($form, $form_state) {
    // submits form
    views_form_views_form_submit($form, $form_state);
    commerce_cart_line_item_views_form_submit($form, $form_state);

    // return updated cart view
    return commerce_cart_view();
}

最初の 2 つのコールバックは、フォームと項目を保存するために使用される通常のカート フォーム コールバックです。この関数は、カート ビュー (メニュー項目「カート」からの元のコールバック) を返します。これは、1 つの小さな点を除いて完全に機能します。行の合計は変更されません。注文の合計は変更される必要がありますが、行ごとの合計金額は同じままです。 .

誰かがここで私を助けてくれますか?

ありがとう!

4

0 に答える 0