Woo-poly-integration: WooCommerce3.6の問題

䜜成日 2019幎04月03日  Â·  19コメント  Â·  ゜ヌス: hyyan/woo-poly-integration

朜圚的なWooCommerce3.6の互換性の問題に぀いおこのチケットを開く。

3.6の機胜匷化に぀いおは、投皿を参照しおください。
https://woocommerce.wordpress.com/2019/04/01/performance-improvements-in-3-6/

倧芏暡な倉曎により、いく぀かの埮劙なバグが発生する可胜性がありたす。
たずえば、Product Meta同期は、暙準のPolylangポストメタ同期を䜿甚し、Product apiを䜿甚しないため、セカンダリ蚀語の曎新されたメタは新しいwoo3.6補品ルックアップテヌブルにコピヌされず、補品の䞊べ替えずレポヌトに埮劙なバグが生じる可胜性がありたす。サむトの第䞀蚀語を䜿甚しない堎合。
同様に、二次蚀語のキャッシュされた補品デヌタは、䞀次蚀語で補品を曎新するずきにフラッシュされない堎合がありたす。

最も参考になるコメント

これは、単䞀の問題に蚀及しおいないwoo3.6の問題の䞀般的なトピックです。 これたでに報告された特定の問題は、githubでのこのプラグむンの最初の3.4リリヌスから修正されたした。 ゜ヌスは3.4.3になりたした。これは、さらにいく぀かのポむントを再確認した埌、githubでリリヌスしたす。

WordPressで完党にリリヌスされる前に、アヌリヌアダプタヌからより倚くのフィヌドバックを埗るこずが垞に望たしいです非垞に倚くの異なる蚭定ず䜿甚シナリオがあるため、特に他のプラグむンを考慮した堎合、完党なテストは実際には䞍可胜です-私はそれを受け入れた埌、すでに1぀の倉曎を元に戻す必芁がありたした1぀のプラグむンの利益のための互換性の倉曎により、他のプラグむンの互換性が倱われたためです䟡栌ず通貚スむッチャヌの名前を付けおください。

昚日、WooCommerceは、以前に受け入れた埌、WooCommerce 3.6+ぞの関連するプルリク゚ストの1぀を拒吊したした-他のプラグむンが補品ルックアップテヌブルを再同期できるようにしたくないこずを考慮しお-したがっお、長期的には、補品を補品ずしお扱うワヌドプレスプラグむンはWordPressAPIを䜿甚した投皿には問題がありたす。 同時に、これたでのずころ、任意の補品䞍明なデヌタを持぀カスタム補品タむプを含むの補品デヌタをコピヌする唯䞀の信頌できる方法は、存圚するすべおのメタデヌタず分類デヌタをコピヌするこずです蚭定に埓っお、コヌス。
3.4で远加された回避策は匕き続き機胜したすが、リリヌス前にもう䞀床確認したす。

党おのコメント19件

こんにちは。 これがあなたが䞊で述べたこずに関連したバグです。

この問題をデフォルトのWordpressテヌマストアフロントなどで再珟できたすか
はい

WooCommerce、Polylang、Hyyan WooCommerce Polylang Integrationを陀く他のすべおのプラグむンが無効になっおいる堎合、この問題を再珟できたすか
はい

この問題が発生したずきに䜿甚しおいる補品バヌゞョンず蚭定は䜕ですか
PHP7.3.1
WordPress5.1.1
WooCommerce3.6.1
ポリラン2.5.3
Hyyan WooCommerce Polylang統合1.3.0
ブラりザChrome、Firefox

再珟する手順
少なくずも2぀の蚀語でPolylangを蚭定する
デフォルト蚀語で倉数補品を䜜成する
補品の翻蚳を䜜成する

私が期埅したこず
翻蚳された補品も可倉です。

代わりに䜕が起こったのか
クリックしお補品の翻蚳を远加するず、その翻蚳の補品タむプがSIMPLEに蚭定されたす。
補品タむプが同期されおいたせん。

補品タむプが確認されたした3.6.xの問題-これを再珟するこずもでき、 https //wordpress.org/support/topic/variable-products-change-to-simple-in-translated-version/でも報告されおい

補品タむプの問題は、補品タむプhttps://github.com/woocommerce/woocommerce/pull/22612/commits/57ccde66437ade8e91d12890245d9d4c5e5e1892に远加されたキャッシュが原因である可胜性があり
これは、補品タむプがwoopolyによっお曎新された堎合、キャッシュが無効化されないため、Simpleずしお衚瀺されるこずを意味したす。

これは、新しい補品デヌタルックアップテヌブルずは異なりたすが、同様の問題です。基本的に、すべおの曎新はwoocommerce APIを経由しお、キャッシュテヌブルずルックアップテヌブルが確実に曎新されるようにする必芁がありたす。
珟圚、プラグむンは、ポストメタおよびタク゜ノミヌをコピヌするためのPolylang機胜を拡匵しおおり、どのメタおよびタク゜ノミヌがコピヌたたは翻蚳を必芁ずするかに぀いおの最䜎限の理解が必芁です。
これで、事前定矩されたWooCommerceアむテムは、WooCommerceAPI自䜓を介しお凊理される必芁がありたす。

私はWooCommerceコヌドを扱った経隓があたりありたせんが、WooCommerceのキャッシュに関する情報がどこかにあるので、これらの問題を修正する方法を芋぀けるこずができたすか あなたの調査結果によるず、ないcopyTerms()で関数をMeta.php曎新する必芁がありたすか

https://github.com/hyyan/woo-poly-integration/blob/1d83ef23e96f35c2bb008b5fa37e5157bfc388e4/src/Hyyan/WPI/Product/Meta.php#L341

理想的には、すべおの曎新でワヌドプレスのPostオブゞェクトではなくwoocommerce Productオブゞェクトを䜿甚しお、woocommerceレベルのキャッシュず䞭間テヌブルおよび将来のProductテヌブルの䞀貫性を確保する必芁がありたす。 これは思ったほど難しくはないかもしれたせん。

あるいは、そのたた曎新しおwoocommerceに関連オブゞェクトの再キャッシュず再蚈算を匷制するこずも可胜ですが、APIを介した曎新はより将来性があり、将来のwoocommerceリリヌスからのメンテナンスず問題が少なくお枈みたす。 。

倉曎に関する情報はすべお、このスレッドの最初のリンクにあり、それ以降のポむントバヌゞョンのリリヌスノヌトにありたす。 䞊蚘のwoocommercegithubリンクは、githubの修正にリンクされおいるリリヌスノヌトを調べお芋぀けたした。

プラグむンの本圓に叀いバヌゞョンでは、ぞの呌び出しがあった$this->syncSelectedproductType($ID);の終わりにsyncProductsMeta()での関数Meta.php 。 これを再床远加するず、可倉補品の新しい翻蚳で、補品タむプのドロップダりンから正しいオプションが遞択されたす。

バリ゚ヌションの補品タむプの問題を修正する@mrleemonうん、よくやった

これはちょっずしたハック䜜業です-根本的な問題を実際に修正するのではなく、代わりに少しのjavascriptを䜿甚しお、翻蚳された新しい補品フォヌムを少しのwoopoly metaず同期し、補品が保存されたずきに正垞に機胜するようにしたす。

䞀般的な補品の同期も問題ないようですさらにテストが必芁です。新しいwc_product_meta_lookupテヌブルのみが曎新されおおらず、珟圚は䞊べ替えにのみ圱響するず思いたす。

したがっお、今のようにpll_copy_post_metasフィルタヌに䟝存するのではなく、WooCommerceCRUD関数を䜿甚しお補品プロパティを盎接コピヌする必芁がありたす。

メタ自䜓は機胜しおいるようですが、キャッシュされる可胜性があるずいうリスクがありたす。たずえば、バリ゚ヌション属性に远加されたwoocommerceキャッシュは次のずおりです。

    public function read_variation_attributes( &$product ) {
        global $wpdb;

        $variation_attributes = array();
        $attributes           = $product->get_attributes();
        $child_ids            = $product->get_children();
        $cache_key            = WC_Cache_Helper::get_cache_prefix( 'product_' . $product->get_id() ) . 'product_variation_attributes_' . $product->get_id();
        $cache_group          = 'products';
        $cached_data          = wp_cache_get( $cache_key, $cache_group );

どういうわけか、キャッシュがクリアされおこれが機胜しおいるず思いたす。それは蚭蚈ではなく運かもしれたせん。
それでも、wc_product_meta_lookupテヌブルを曎新する必芁がありたす。これは、productクラスを介しお特定のフィヌルドを曎新するこずで個別に実行できたすが、すべおの曎新を_relevant_ productクラスを介しお実行するず、デヌタベヌス呌び出しが繰り返されないようにするため、より効率的です。 補品タむプが異なれば凊理も異なるため、おそらく_relevant_補品クラスである必芁がありたす。

次のWC関数が、新しい翻蚳を䜜成するずきに補品デヌタをコピヌするのに圹立぀かどうかはわかりたせん。

https://docs.woocommerce.com/wc-apidocs/source-class-WC_Admin_Duplicate_Product.html#134

woocommerce_duplicate_product_exclude_metaフィルタヌを䜿甚しおメタフィヌルドをコピヌから陀倖し、 woocommerce_product_duplicate_before_saveフックを䜿甚しお補品オブゞェクトを䜜成前にさらに倉曎したす。

@mrleemonありがずう..私たちはそのような補品を耇補したせんが、おそらく私たちは.....

それたでの間、チェックむンする別の解決策がありたす。

@mrleemon $ this-> syncSelectedproductType$ ID;に察するあなたの提案を受け入れたした。 たた、翻蚳補品のキャッシュがクリアされ、ルックアップテヌブルが曎新されるようにする機胜が远加されたした。

これは、これたでに報告されたすべおの3.6の問題に察凊したす。
しかし、それは完党なコヌドレビュヌではありたせん...

@mrleemonありがずう..私たちはそのような補品を耇補したせんが、おそらく私たちは.....

はい、知っおいたす。 ただし、WCチヌムが将来、すべおの補品メタデヌタをwp_postmetaテヌブルから移動するこずを蚈画しおいるこずを考えるず、おそらく長期的には、WCコア関数を䜿甚しお補品を耇補するこずを怜蚎する必芁がありたす。

新しい補品の投皿は、蚀語ずリンクされた翻蚳の分類デヌタず遞択されたメタを含む空癜の投皿ずしおPolylangによっお䜜成されたす。このプラグむンは、メタオプションず远加の甚語および分類を凊理するために、䞀般的な方法でそれを拡匵したす。

甚語ず分類法は䞀般的な方法でコピヌする方が実際には優れおいたす。なぜなら、それらは䞀般的に任意の補品タむプ私たちが知らない補品タむプを含むおよびプラグむンで機胜するたたはフィルタヌで機胜するようにするこずができるからです。補品にメタデヌタたたは分類法を远加したす暙準のwoocommerceオブゞェクトはこれを認識しおいたせん。

WooCommerceの長期的な目暙は、postsテヌブル自䜓から補品デヌタを移動するこずであるように芋えたしたが、それによっおすべおの拡匵プラグむンが砎損するため、䞊べ替えに䜿甚されるメむンデヌタフィヌルドのパフォヌマンス制限を緩和するためにこのルックアップテヌブルを考案したした。

やあ このバグは修正されたしたか 最埌の倉曎ログ゚ントリには、WC 3.6ずの互換性が修正されたず蚘茉されおいたすが、この問題は未解決のたたです。 ステヌタスはどうなっおいたすか たた、WPhttps://wordpress.org/plugins/woo-poly-integration/によっお配垃されたプラグむンを曎新するこずは可胜ですか

ずころで、関係者党員にこのプラグむンを維持しおくれおありがずう

これは、単䞀の問題に蚀及しおいないwoo3.6の問題の䞀般的なトピックです。 これたでに報告された特定の問題は、githubでのこのプラグむンの最初の3.4リリヌスから修正されたした。 ゜ヌスは3.4.3になりたした。これは、さらにいく぀かのポむントを再確認した埌、githubでリリヌスしたす。

WordPressで完党にリリヌスされる前に、アヌリヌアダプタヌからより倚くのフィヌドバックを埗るこずが垞に望たしいです非垞に倚くの異なる蚭定ず䜿甚シナリオがあるため、特に他のプラグむンを考慮した堎合、完党なテストは実際には䞍可胜です-私はそれを受け入れた埌、すでに1぀の倉曎を元に戻す必芁がありたした1぀のプラグむンの利益のための互換性の倉曎により、他のプラグむンの互換性が倱われたためです䟡栌ず通貚スむッチャヌの名前を付けおください。

昚日、WooCommerceは、以前に受け入れた埌、WooCommerce 3.6+ぞの関連するプルリク゚ストの1぀を拒吊したした-他のプラグむンが補品ルックアップテヌブルを再同期できるようにしたくないこずを考慮しお-したがっお、長期的には、補品を補品ずしお扱うワヌドプレスプラグむンはWordPressAPIを䜿甚した投皿には問題がありたす。 同時に、これたでのずころ、任意の補品䞍明なデヌタを持぀カスタム補品タむプを含むの補品デヌタをコピヌする唯䞀の信頌できる方法は、存圚するすべおのメタデヌタず分類デヌタをコピヌするこずです蚭定に埓っお、コヌス。
3.4で远加された回避策は匕き続き機胜したすが、リリヌス前にもう䞀床確認したす。

wp5.2.2のHyyanWooCommerce PolylangIntegrationバヌゞョン1.4.3でただこのバグが発生しおいたす。

可倉補品の゚ディタヌをロヌドするず、可倉補品デヌタが削陀されたす。可倉補品デヌタを再保存しおも効果はありたせん。

Hyyanを無効にしおから再床有効にしおも、この動䜜は倉わりたせんでした。
最近、Polylangが曎新されたした
https://wordpress.org/plugins/polylang/#developers
2.6.22019-07-16
プロ翻蚳曎新サヌバヌに到達できない堎合の遅い管理を修正
ProリピヌタヌのACFクロヌンフィヌルドの倀が正しく倉換されない問題を修正
WPML互換性を介しお登録されたずきに混合された文字列の翻蚳を修正したした。 381

こんにちは、 @ Oclairは、最新のPolylangおよびWooCommerceのアップデヌトでも修正が機胜しおいるこずに泚意しおください。問題が発生した堎合は、詳现を蚘茉した別のgithubの問題ずしお提起しおください。

回避策にはjavascriptが含たれおいるため、サヌバヌ偎の゚ラヌをチェックするだけでなく、Chrome開発者ツヌルで調べおjavascriptコン゜ヌルに゚ラヌがないかチェックする䟡倀があるこずに泚意しおください。

別の問題たたは他のプラグむンが䜕らかの圢でこれに圱響を䞎えおいる可胜性がありたす。

javascriptを有効にする些现な譊告ではなく、応答ず解決策に感謝したす
このjavascriptに問題がある堎合、プラグむンが管理者に通知する可胜性がありたすか ほずんどの人は、䞀郚のテキストを曎新するだけでよい堎合、補品倉数をチェックしないためです。

もう䞀床ありがずう、玠敵なものを持っおいたす

こんにちは、 @ Oclairは、最新のPolylangおよびWooCommerceのアップデヌトでも修正が機胜しおいるこずに泚意しおください。問題が発生した堎合は、詳现を蚘茉した別のgithubの問題ずしお提起しおください。

回避策にはjavascriptが含たれおいるため、サヌバヌ偎の゚ラヌをチェックするだけでなく、Chrome開発者ツヌルで調べおjavascriptコン゜ヌルに゚ラヌがないかチェックする䟡倀があるこずに泚意しおください。

別の問題たたは他のプラグむンが䜕らかの圢でこれに圱響を䞎えおいる可胜性がありたす。

このjavascriptに問題がある堎合、プラグむンが管理者に通知する可胜性がありたすか
怜出しお察凊するのは難しい状況かもしれたせん。javascriptの問題が実行されないこずである堎合、アラヌトを䜜成するこずはできたせん。

私は実際にこの回避策を数バヌゞョン前に削陀したした。これは気に入らず、必芁ないこずがわかったためです。 残念ながら、WooCommerceの倉曎により再び必芁になり、より良い代替手段を芋぀けるこずができたせんでした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡