ããã«ã¡ã¯ã
woocommerceã®æåŸã®æŽæ°åŸãå¯å€è£œåã®ç·šéã«åé¡ããããŸãã
補åããŒã¿ã¯ãã·ã³ãã«è£œåãã瀺ããŠããŸããã補åã¯å¯å€ã§ãã
Copy and paste the system status report from **WooCommerce > System Status** in WordPress admin here.
åãåé¡ããããŸããäž»èŠèšèªããã³ããŒãããšãããªãšãŒã·ã§ã³ãã³ããŒããå¯èœæ§ããªããåçŽãªè£œåã®ã¿ã衚瀺ãããŸãã ã©ãããã°ããã解決ã§ããŸããïŒ
ããã«ã¡ã¯ã
ãã©ã°ã€ã³ãjQueryMigrateHelperããã€ã³ã¹ããŒã«ããããšããŸãããïŒ
ãªããžããªã®ã³ãŒãã䜿çšããŠãããŠã³ããŒãã³ãŒãããçŽæ¥zipãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŠãã ããã解決ãããå¯èœæ§ããããšæããŸããæ¥é±ã¯ããããããããã¹ãããŸããããã£ãŒãããã¯ã¯å€§æè¿ã§ãã
ãªããžããªã®ã³ãŒãã䜿çšããŠãããŠã³ããŒãã³ãŒãããçŽæ¥zipãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŠãã ããã解決ãããå¯èœæ§ããããšæããŸããæ¥é±ã¯ããããããããã¹ãããŸããããã£ãŒãããã¯ã¯å€§æè¿ã§ãã
zipãããŠã³ããŒãããŠGitHubããã€ã³ã¹ããŒã«ããåŸã2ã€ã®åé¡ããããŸãã
1ïŒè£œåã第äžèšèªãã第äºèšèªã«ã³ããŒãããšãå€ãã®ããªãšãŒã·ã§ã³ãäœæãããŸãïŒããšãã°ã2è²ã®è£œåãããå Žåã第2èšèªã¯è²ãã10ã®ããªãšãŒã·ã§ã³ãäœæããŸãïŒ
2ïŒã客æ§ã®ã泚æåŸãåšåº«ãæ®ã£ãŠããŠãåšåº«åããšãªããŸãã
1. If I copy a product from the primary language into the secondary it creates many variations, (example if I have a product with 2 colors, the second language creates 10 variations from the color)
ãã©ã°ã€ã³ã®GitHubããŒãžã§ã³ã§ãåãåé¡ãçºçããŠããŸã
ææ°ã®PRïŒ518ã¯ãå¯å€è£œåã«é¢é£ããäœããå°ç¡ãã«ããããã§ãã
ãããã¯ãèªã¿ãŸããããåé¡ã¯ã¡ã¿å±æ§ã®ã¹ãã«ãã¹ã§ãã æŽæ°ã¯ãšãªã§è§£æ±ºããsrc / Hyyan / WPI / Plugin.phpã®ååãä¿®æ£ã§ããŸããïŒ
@mrleemonããªãããã®ãããžã§ã¯ãã®å
±åäœæ¥è
ã§ããããšã
ç³ãèš³ãããŸããããç§ã¯ãã£ãšåã«ã¿ã€ããã¹ã®ããã€ãã®ä¿®æ£ãã³ãããããã ãã§ãã ãã®ãã©ã°ã€ã³ã®å
éšåäœã«é¢ããç§ã®ç¥èã¯ã»ãŒãŒãã§ãã
ãã®ããªãšãŒã·ã§ã³ã®ãã°ãä¿®æ£ããããã«äœãããªããã°ãªããªãã®ãããããŸããã
ä»ã®ãšããããã®ãã©ã°ã€ã³ãã©ã®ããã«æ©èœããããç¥ã£ãŠããã®ã¯@ Jon007ã ãã ãšæããŸã
ïŒ518ã«ã¯ãæ¢åã®ãµã€ããå£ãå¯èœæ§ããããããïŒ450ã§ãã§ã«æåŠãããã®ã¿ã€ããã¹ã®ä¿®æ£ãå«ãŸããŠããããšã確èªããŸãããã
ä»ã®ãšããïŒ518ãå ã«æ»ããŸããã ãããŠãåŸã§è©³ããèŠãŠãããŸã
ããããšãïŒ
ãã¶ãããã©ã°ã€ã³ã¯ãçŸåšã®ã«ã¹ã¿ã æ¹æ³ã§ã¯ãªããå
¬åŒã®Polylang pll_copy_taxonomies
ãã£ã«ã¿ãŒã䜿çšããŠWooCommerceåé¡æ³ïŒproduct_typeãproduct_visibilityãªã©ïŒãåæããå¿
èŠããããŸããããã¯ãWooCommerceã®äžå®ã®ãªãªãŒã¹ã«å¯ŸããŠè匱ã§ããããã§ãã ãã©ã°ã€ã³ã¯ãã§ã«Polylang pll_copy_post_metas
ãã£ã«ã¿ãŒã䜿çšããŠè£œåã¡ã¿ãã³ããŒããŠããããã pll_copy_taxonomies
ã䜿çšããŠè£œååé¡ãåæããã®ã劥åœãšæãããŸãã
ãã®ãã£ã«ã¿ãŒã䜿çšãããšãåæãŸãã¯ã³ããŒããåé¡æ³ãæå®ã§ããæ°ãã翻蚳ãäœæãããšãã«ãPolylangããã®åé¡æ³ãšããã«é¢é£ããçšèªã®åæ/ã³ããŒãåŠçããŸãã
ãã ã®ã¢ã€ãã¢ã
ç§ã¯ãããèŠãŸããããwoocommerceãç¬èªã®APIãšç¬èªã®ããŒãã«ã«ç§»è¡ããã«ã€ããŠã補åãæçš¿ãšããŠæ±ããäžè¬çãªæçš¿ããŒã¹ã®APIã䜿çšããããšã«é Œãããšãã§ããªãããããããã¯ãã¹ãŠå±éºãªã»ã©æ代é ãã«ãªã£ãŠããŸãã ãããããwoocommerceãã£ãã·ã³ã°ã¡ã«ããºã ã«ã¯ãã°ãããã§ãããã
ã¯ããç¥ã£ãŠããŸãã WC apiã®å€æŽãåŸ
ã€éãäžæçãªè§£æ±ºçãšããŠèããŠããŸããã
äžæ¹ã補åãå¯å€ã§ã Meta.php
ã®JSã³ãŒãã次ã®ããã«å€æŽãããšããSimpleProductãã®èª€ã£ãéžæã解決ã§ãããšæããŸãã
ããïŒ
$code = sprintf(
'// <![CDATA[ %1$s'
. ' addLoadEvent(function () { %1$s'
. ' jQuery("#product-type option")'
. ' .removeAttr("selected");%1$s'
. ' jQuery("#product-type option[value=\"%2$s\"]")'
. ' .attr("selected", "selected");%1$s'
. '})'
. '// ]]>', PHP_EOL, $type[0]
);
ã«ïŒ
$code = sprintf(
'// <![CDATA[ %1$s'
. ' addLoadEvent(function () { %1$s'
. ' jQuery("#product-type option")'
. ' .prop("selected", false);%1$s'
. ' jQuery("#product-type option[value=\"%2$s\"]")'
. ' .prop("selected", true);%1$s'
. '})'
. '// ]]>', PHP_EOL, $type[0]
);
ã©ãããããªãã·ã§ã³ã®éžæ/éžæ解é€ã«attr()
ãšremoveAttr()
ã䜿çšããããšã¯ãWPã§ã®jQueryã®æè¿ã®å€æŽã«ããéæšå¥šã«ãªããŸããã
https://jquery.com/upgrade-guide/3.0/ããïŒ
Breaking change: .removeAttr() no longer sets properties to false
Prior to jQuery 3.0, using .removeAttr() on a boolean attribute such as checked, selected, or readonly would also set the corresponding named property to false. This behavior was required for ancient versions of Internet Explorer but is not correct for modern browsers because the attribute represents the initial value and the property represents the current (dynamic) value.
It is almost always a mistake to use .removeAttr( "checked" ) on a DOM element. The only time it might be useful is if the DOM is later going to be serialized back to an HTML string. In all other cases, .prop( "checked", false ) should be used instead.
ãŸããçŸåšããŠãŒã¶ãŒãWCéè€è£œåãªã³ã¯ãã¯ãªãã¯ããŠãã補åã¿ã€ãã¯ã¬ããªã«ã«ã³ããŒãããŸããã
ç§ã¯ããããè¿œå ããããšã§ãããã"åºå®" unlinkOrginalProductTranslations()
é¢æ°Duplicator.php
ïŒ
$type = $product->get_type();
update_post_meta($duplicate->get_id(), '_translation_porduct_type', $type);
ããã«äœãåé¡ããããã©ããã¯ããããŸããã
'_translation_porduct_type'ãå®å šã«åé€ãããã®ã§ãããå®éã«ã¯å¿ èŠãªãã¯ãã§ãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®çã«å¯ŸåŠããããã ãã«ãããŸãããä»ã®ãšããæãç°¡åãªã®ã¯ããããç¶æããŠãææ¡ã©ããã«å®è¡ããããšã§ãã
ããã«ã€ããŠã䌺ãããŸãã 翻蚳ããã補åã¿ã€ãã_translation_porduct_type
ä¿åãããã®ã¯ãªãã§ããïŒ å¿
èŠãªãšãã«å
ã®è£œåããçŽæ¥ååŸããããšã¯ã§ããŸãããïŒ
polylangã翻蚳ãããšããå€ã補åãèŠæ±ãããšãã«ç¿»èš³ããã補åã®è©³çŽ°ãæäŸããããšããã®ã§ãå°ãªããšããã¡ã¿ããŒã¿ã«ã³ããŒããæ¹ãç°¡åãªã®ã§ãè€éã ãšæããŸãã
_translation_porduct_type
ã¡ã¿ãåãé€ãããã«ããã©ã°ã€ã³ã¯wp_insert_post
ã䜿çšããã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã«äŸåããã®ã§ã¯ãªããWC API WC_Product:save()
é¢æ°ã䜿çšããŠç¿»èš³ãä¿åããå¿
èŠããããšæããŸãã¢ã¯ã·ã§ã³ãçŽæ¥å®è¡ããŸãããããã¯Meta.php
ã«ããã³ãŒãã®å€ãããªãã¡ã¯ã¿ãªã³ã°ããããšãæå³ããã©ãããå§ããã°ãããããããŸããã
ããã«ã¡ã¯ã ãã®åé¡ã解決ããŸãããïŒ
ããã«ã¡ã¯ãç§ã¯ïŒ430ã®èª¬æãå«ããå¯å€è£œåã®åé¡ã«å¯Ÿããããã€ãã®è§£æ±ºçãã³ãããããŸãã-誰ããææ°ã®ã³ãŒãããã¹ãããæ®ã£ãŠããåé¡ã確èªã§ããã°çŽ æŽãããã§ããã-çæ³çã«ã¯ãæ°ããã¯ãªãŒã³ãªgithubã®åé¡ã§ãéšåçã«ãŸãã¯ãã±ãããå®å šã«è€è£œãããã©ããŒããã®ãé£ãããªã£ãŠããŸãã
ããªãã®ä»äºãããããšãïŒ æ©äŒãããã°ææ°ã®ã³ãŒãããã¹ãããåé¡ãçºçããå Žåã¯ãç¥ããããŸãã
ææ°ã®ã³ãŒãããã¹ãããåŸãåé¡ãçºçããŸããã
https://github.com/hyyan/woo-poly-integration/issues/526
@hyyan @mrleemonå é±ãããã€ãã®éèŠãªå€æŽããã§ãã¯ã€ã³ãã5.1ãšããã©ãã«ãä»ããŸãã
ç¹ã«ã以äžãžã®meta.phpåŒã³åºããã³ã¡ã³ãã¢ãŠãããããšã«ãããïŒ408ã®@mrleemonã«ããåé¿çã®ä¿®æ£ã
$ this-> syncSelectedproductTypeïŒ$ IDïŒ;
以åã¯ãå°ãªããšã5.0ã§ã¯ä¿åã·ãŒã±ã³ã¹ãæ£ãããªãã£ãããããã®åé¡ãçºçããŠããŸããã
ã³ãŒããªããžã§ã³ã¯ãWooCommerceã®ä¿åçŽåŸã«ããã¯ãååŸããããã«ãªããã¯ã€ãã¯ç·šéïŒïŒ549ïŒãšäžæ¬ç·šéã§ãæ©èœããããã«èª¿æŽãããããã補åã¿ã€ãã®åé¿çã¯äžèŠã«ãªããŸããã
ãã¡ãããããã§çµããã§ã¯ãããŸãããwooapiã®ã¿ã䜿çšããwp apiãåé¿ããããã«å šäœãåæ€èšããå¿ èŠããããŸãããå¥åŠãªåäœã®äžéšãåé€ããå¿ èŠããããŸãã
çŽ æŽãããïŒ ãã®åé¿çã®ä¿®æ£ã¯æ¬åœã«ã²ã©ããã®ã§ããã
ã§ã¯ãã¹ãã«ãã¹ã®ãã_translation_porduct_type
ã¡ã¿ãäžèŠã«ãªããŸãããïŒ
æéãããã°ããã®æŽæ°ãããããŒãžã§ã³ããã¹ãããŸãã
ããããšãïŒ
ã¹ãã«ãã¹ã®_translation_porduct_typeã¡ã¿å²ãåœãŠã¯ä»ã®ãšããããã«æ®ããŠããŸããã䜿çšãããŠããŸããã ãã®ããŒãžã§ã³ã«åé¡ããªããã°ãåŸç¶ã®ãªãªãŒã¹ã§ãã®ã³ãŒãããã®ä»ã®åé·ãªã³ãŒããåé€ãããå¯èœæ§ããããŸã
ãã®æ°ããããŒãžã§ã³ããã¹ããããšãããåé¡ãèŠã€ãããŸããã
ã¯ããèŠãŠãããŸãã
æ¢åã®è£œåã®è£œåã¿ã€ãïŒããã³ãã®ä»ã®ããããã£ïŒãå€æŽããŠãåé¡ãããŸããã
@mrleemonããã§ãã¯ã€ã³ããŸããïŒ
ããããŸãããããããšãïŒ
åŸã§ãã¹ãããŠãã§ããã ãæ©ãæ»ã£ãŠããŸãã
ãã®æ°ããããŒãžã§ã³ããã¹ããããšãããæ°ãã翻蚳ã«é¢ããåé¡ãä¿®æ£ãããŸããã
ããããšãïŒ
æãåèã«ãªãã³ã¡ã³ã
ä»ã®ãšããïŒ518ãå ã«æ»ããŸããã ãããŠãåŸã§è©³ããèŠãŠãããŸã