web-dev-qa-db-ja.com

StringOverridesは、DCommerceの[カートに追加]ボタンのテキストを変更しません

これを適用する方法については、hook_form_alter関数への参照がたくさんありますが、投稿の多くは、より熟練した開発者を対象としています。これらを変更するにはカスタムモジュールが必要であることは十分に知っていますが、変更するボタンのフォームIDがどこにあるかわかりません。

StringOverridesモジュールの方向も指摘されましたが、これはボタンに必要な変更には影響せず、学習している内容とは対照的に、必要な用語がプレーンテキストで表示される場合にのみ影響します。コマースモジュール。

だから... a)これらのボタンを変更するモジュールを作成するためのフォームIDを見つけるにはどうすればよいですか?およびb)文字列オーバーライドを取得してボタンのテキストを実際に変更するにはどうすればよいですか?

1
nizz0k

私が変更しようとしていたフィールドは、最終的にdrupalコマースにハードコードされ、文字列のオーバーライド、さらにはコマースカートのオーバーライドモジュールでさえ、必要なことを実行するのに役立ちませんでした。完全に。

だから...私はbartikテーマにhook_form_alter()関数を適用しました。スタンドアロンモジュールでそれらを機能させることができなかったからです。テーマなどを変更したい場合は、どこで何を変更したか。

だから、組み合わせアプローチは私が最終的に必要なことを成し遂げました。言うまでもなく、全体的なドキュメントは、比較的簡単な修正とグーグルからの比較的一般的な問題の周りでかなり不透明です。

役立つ可能性のあるコードスニペット:

function bartik_form_alter(&$form, &$form_state, $form_id){
dpm($form_id);
dpm($form);
if (commerce_form_callback($form_id, $form_state) == "commerce_cart_add_to_cart_form"){
$form['submit']['#attributes']['title'] = $form['submit']['#attributes']['value']=t("Add to Inquiry List");
}
if(strpos($form_id, 'views_form_commerce_cart_form_default')===0){
$form['actions']['submit']['#value'] = t("Update List");
$form['actions']['checkout']['#value'] = t("Submit List");
}
if(strpos($form_id, 'commerce_checkout_form_checkout')===0){
    $form['buttons']['continue']['#value'] = t('Proceed to final list submission.');
    }
if(strpos($form_id, 'commerce_checkout_form_review')===0){
    $form['buttons']['continue']['#value'] = t('Submit your inquiry list');
    }

}

1
nizz0k