Drupal 7のコマースモジュールの_site.com/cart
_ページでカートフォームビューShopping cart form (Commerce Order)
を変更するように発行されました。これには、サイズなどの追加の選択肢の追加が含まれます各製品の数量を更新するだけです。
_commerce_cart_block
_を上書きしてみましたが、コンテンツを担当していたのは_commerce_cart_form
_であることに気づきました。 Commerce Cart View Override というモジュールを試しましたが、コンテンツを表示するためにテンプレート内に_views-view--commerce-cart-form.tpl.php
_というテンプレートファイルを含めるのに役立ちます。
しかし、私は今何をすべきか本当にわかりません。私の考えでは、アイテムとそれを囲むフォームを表示するテーブルをオーバーライドします。渡された変数が非常に多いことを理解するために、テンプレートでget_defined_vars()
をエコーしました。
私が望むのは、すべての/ cartページで既存のカートセッションを変更するフォームを追加し、現在のカートテーブルを完全に制御できるエレガントなソリューションです。
/ cartページをカスタマイズするための理想的な方法は何ですか?私は正しい道を進んでいますか、それとも私が見逃したいくつかの単純な代替案がありますか?個人的には、データベースに保存されたソリューションではなく、コード化されたソリューションが必要です。
これは期待されるアプローチだと思います。注:これは、ビューの使い方がわかっていることを前提としています。
commerce_cart_form
で始まるcommerce_cart_form_custom
のような名前に変更します。admin/commerce/config/cart-overrides
(管理>>ストア>>構成>>カートの上書き)のドロップダウンでこれを選択し、保存します。/cart
ページに表示されるビューを編集できるようになりました。直感的でないヒント:/admin/commerce/orders/carts
でショッピングカートのID番号を確認できます。 ID番号を入力するだけで、他のテキストは必要ありません。admin/people/permissions
にアクセスして、[チェックアウトへのアクセス]の横にある[匿名ユーザー]チェックボックスをオンにする必要がありますカスタムモジュールまたはテーマのtemplate.phpファイル(別の管理テーマを使用する場合、template.phpはビューのプレビューに影響を与えず、顧客向けページのみに影響することに注意してください)のようなものを追加します( クレジット ):
function yourthemename_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'views_form_commerce_cart_form_custom_default':
// ^ from here on should match the view machine name from earlier
// ^ from here, the particular view display, which you can see at the end of the Views UI URL while editting that display
foreach ($form['edit_delete'] as $row_id => $row) {
if(isset($form['edit_delete'][$row_id]['#value'])){
$form['edit_delete'][$row_id]['#value'] = 'New delete button label';
}
}
$form['actions']['checkout']['#value'] = 'New checkout button label';
$form['actions']['submit']['#value'] = 'New update button label';
break;
}
}