0

Magento WordPress 統合プラグインを使用して、 Magentoから適切なメニュー ブロックを取得するために、Magento の並列インストールからブロックを呼び出しています。

これは、サイトが多言語であることを除いて、非常にうまく機能しています。

Magento が適切な言語でメニューをロードすることを確実にするために、言語が変更されたときにストア Cookie を適切な言語に変更するように、Wordpress にいくつかのコードを挿入しました。

これは、正しい言語をロードする前に何らかの理由で 2 回クリックする必要があることを除けば、完全に機能します。「ストア」Cookie が適切な言語に設定されていることを Web インスペクタで確認できますが、プラグインはこれが何らかの形で発生する前に Magento コンテンツをロードしているようです。

メニューを分離し、システム間で手動でコーディングする以外に何をすべきか本当に途方に暮れています。私はプラグインの実際の開発者と話し合っていましたが、彼は自分で解決策を考えることができませんでした (残念ながら、私が何らかのサポートを契約する可能性を尋ねたときに、議論は終了しました)。

いずれにせよ、誰かがこれをどのように行うかについて何か考えを持っているなら、私は非常に感謝しています.

--

編集:これは私がこれまでに書いたもので、仕事に取り掛かろうとしています。URL から言語文字列を取得し、storeCookie を設定します。プラグイン API/アクション リファレンスを見ると、ロード順序で最初に発生するものです。私は必須のプラグインを持っていて、それが機能することを確認できますが、registered_taxonomy、投稿タイプなどにフックしようとしました...いくつかの奇妙な理由で、遠く離れているにもかかわらず、2回目のクリックまで機能しませんテーマまたは通常のプラグインがロードされる前。

function set_store_cookie() {
    if( preg_match("(/(de|en|jp)/)",$_SERVER[REDIRECT_URL],$m)) {
        $pbCurrentLanguage = $m[1];
    } else {
      $currentLanguage = "en";
    }
    setcookie('store', $currentLanguage, time()+(60 * 60 * 24 * 1), COOKIEPATH, '.domain.com', false);
  }
add_action('registered_post_type', 'set_store_cookie');

--

編集2: 以下のMihaiとの広範な話し合いの後、多くのことについて話し合いましたが、主にstoreCookieが設定されている場合、静的に呼び出してもWordpressはCookieによって指定された言語をロードすることがわかりました$app = Mage::app('desired_lang', 'store');

以前と同じ問題に陥るため、これは非常に混乱します。Cookie が設定されている場合、Wordpress は 2 回目の更新まで適切な Magento 言語の読み込みに失敗します。

Wordpress が読み込まれるたびに Cookie を削除することで、その間にこれを解決しましたが、これは実際には理想的な解決策ではないようです。静的に呼び出してもMage::app間違った言語をロードし、Cookie によってオーバーライドされる (そして次のロード時も)ことは、私には非常に困惑しています。

4

3 に答える 3