ãã®åé¡ãããã©ã«ãã®WordpressããŒãïŒã¹ãã¢ããã³ããªã©ïŒã§åçŸã§ããŸããïŒ
ã¯ã
WooCommerceãPolylangãHyyan WooCommerce Polylang Integrationãé€ãä»ã®ãã¹ãŠã®ãã©ã°ã€ã³ãç¡å¹ã«ãªã£ãŠããå Žåããã®åé¡ãåçŸã§ããŸããïŒ
ã¯ã
ãã®åé¡ãçºçãããšãã«äœ¿çšããŠãã補åããŒãžã§ã³ãšèšå®ã¯äœã§ããïŒ
PHPïŒPHP 7.0
WordPressïŒ4.9.2
WooCommerceïŒ3.2.6
ããªã©ã³ïŒ2.2.8
Hyyan WooCommerce Polylangçµ±åïŒ1.0.4
ãã©ãŠã¶ïŒChromeææ°
åçŸããæé
å°ãªããšã2ã€ã®èšèªãèšå®ããŸããããšãã°ãEN =ããã©ã«ããFR
ååãèšå®ãã2ã€ã®èšèªã«ç¿»èš³ããŠãåšåº«ã3ã«èšå®ããŸã
FRã«ããéã«ãã®è£œåã®1ã€ããã¹ã±ããã«è¿œå ããŸã
PaypalãPayzenãªã©ã®æ¯æããã©ãããã©ãŒã ã§æ¯æãããã§ãã¯ã¢ãŠãããŸãã
æ¯æããå®äºããããWebãµã€ãã«ãªãã€ã¬ã¯ãããåã«ããŒãžãéããŸãã
IPNãWebãµã€ãã«éä¿¡ãããããšã確èªããŠãã ããã
ã泚æãæ¿ããŸããããååã®åšåº«ã¯ENã§1ãFRã§3ã«ãªããŸãïŒ
ç§ãæåŸ
ããããš
ãã¹ãŠã®èšèªã§2ã€ãåšåº«ãšããŠ3ã€æã£ãŠããŠã1ã€è³Œå
¥ããŸããã
代ããã«äœãèµ·ãã£ãã®ã
IPNãä»ããŠåŒã³åºãããå Žåãæ ªäŸ¡æŽæ°ã¯ããã©ã«ãèšèªã®1åã§ã¯ãªãã2åæŽæ°ãããŸããæãäžããŠã次ã®ããã«ä¿®æ£ã§ããåé¡ãèŠã€ããŸããã
Stock.phpã§ãããã®è¡ãåé€ããããšã«ãã£ãŠ
$productID = Utilities::get_order_item_productid($item);
$productObject = wc_get_product($productID);
ã©ãããããããIPNãä»ããŠåŒã³åºããããšãget_order_item_productidé¢æ°ã¯ãéžæããã補åã§ã¯ãªããããã©ã«ãèšèªã®è£œåã®è£œåIDãè¿ããŸãã
ç§ã¯wc-stock-function.phpããã§ãã¯ããããã«ãã£ãŠ2è¡ãå€æŽããŸããã
$productObject = $item->get_product();
$productID = $productObject->get_id();
次ã«ããåé€ããŸãã
unset($translations[$orderLang]);
翻蚳ã«ãŒãã§çŸåšã®è£œåãã¹ãããããã ãã§ãã
if ($ID == $productID) continue;
IPNãä»ããŠåŒã³åºããããšãget_order_item_productidé¢æ°ã¯ãéžæããã補åã§ã¯ãªããããã©ã«ãèšèªã®è£œåã®è£œåIDãè¿ããŸãã
ã¯ããIPNURLèªäœã¯Polylangã«ãã£ãŠããã©ã«ãèšèªãšããŠæ±ãããŸãã
[ïŒ218ã¯ãèšèªåºæã®IPNãååšããå¯èœæ§ãããããšã瀺åããŠããããããçºçããªãããã«å€æŽãææ¡ããŠããŸã]
å€æŽãIPNåŒã³åºãã®ã¿ã«é©çšããããã«å¶éããã«ã¯ã©ãããã°ããã§ããïŒ
å€æŽã®å·®åã確èªã§ããããã«ãå€æŽããã«ãªã¯ãšã¹ããšããŠéä¿¡ã§ããŸããïŒ
çŽ æŽãªè³ªåã®1ã€ã§ãããIPNã䜿çšããªãããšã§ãåé¡ã¯è§£æ±ºããŸãããïŒ ãã®å ŽåãIPNã䜿çšããå©ç¹ã¯äœã§ããïŒ ïŒä»ã®æ±ºæžãããã€ããŒã¯IPNã䜿çšããŠããããPayPalã«ãå¿ èŠãªããããæ確ã«ããããã«...ïŒ
å€æŽã¯IPN以å€ã®åŒã³åºãã«ã¯åœ±é¿ããªãããã§ããæ¬çªç°å¢ã§ãããã䜿çšããŠããããŸã£ããåé¡ã¯ãããŸããã
å€æŽãªã¯ãšã¹ããéä¿¡ããŸããã
IPNã®äœ¿çšãåé¿ããæ¹æ³ãããããŸããã ã©ããã£ãŠäœ¿ã£ãŠããªãã®ã説æããŠããããŸããïŒ
IPNã䜿çšããªããšãPDTã«å®å
šã«äŸåããããšã«ãªããŸããããã¯éåžžãæ¯æãåŸã«ãªãã€ã¬ã¯ããããããŒãžã§ãã ç§ãã¡ã®å Žåãã客æ§ã®50ïŒ
以äžããæ¯æãåŸã«Webãµã€ãã«ãªãã€ã¬ã¯ããããïŒ1ç§ã«èšå®ãããïŒãŸã§åŸ
æ©ããŸãããã€ãŸããIPNããªããšã泚æã®ååãæ¯æãå®äºã«åãæ¿ãããŸããã IPNã䜿çšãããšã泚æã®æ¯æããæŽæ°ãããããšã確èªã§ããŸããããããã©ã®ããã«äœ¿çšããªãã®ãç解ã§ããŸããã
ããšãã°ãæšæºã®Stripeãã§ãã¯ã¢ãŠãã«ã¯ãããŒãžã«ãããã¢ãããã€ã¢ãã°ãŸãã¯ã«ãŒããã£ãŒã«ãïŒãŸãã¯ããŒãžã®Apple Payãã¿ã³ïŒããããJavaScriptãšajaxåŒã³åºãã®ã»ãããä»ããŠãã¹ãŠãå¶åŸ¡ããŠããããã§ãããç§ã¯ãããç¥ããŸããPaypalIPNãšåçã§ãã
WooCommerceãæäŸããPaypalçµ±åãŸãã¯ä»ã®ãã©ã°ã€ã³ã®1ã€ã䜿çšããŠããŸããïŒ
javascriptã¯ã¯ã©ã€ã¢ã³ãåŽã§ãããããä¿¡é Œæ§ããããŸããã JSã¯å€±æããããããã¯ãããå¯èœæ§ãããããããã¢ãããéåžžãããã¯ãããŸãã ãŸããã客æ§ã®å€ãã¯ãJavascriptã®å®è£
ãæªãããšã§ç¥ãããŠããWin7ã§IEãå®è¡ããŠããŸãã
Paypalã䜿çšããŠããããPayZenãã©ã°ã€ã³ãšIngenicoãã©ã°ã€ã³ã䜿çšããŠããŸããã©ã¡ããIPNã§åäœããŸãã
ãã©ã°ã€ã³ã§IPNã䜿çšããå¿
èŠã¯ãããŸããããStripeã§ããã€ã§ãå©çšã§ããŸãã
https://github.com/jatskie/stripe/blob/master/ipn.php
確å®ã«å®è£
ããŸããããŸããç§ãã¡ã®æ¥åã§ã¯ã人ã
ã¯10:15ããåã«æŒé£ã泚æãã12ããåã«é
éããããããæ¯æããéç¥ãããªãå Žåã顧客ã¯æŒé£ãåãåããŸããã ãã®æéçã«éèŠãªåé¡ã§ã¯ãå¶ç¶ã«é Œãããšã¯ã§ãããæ¯æããã泚æãç§ãã¡ã®æéæ å
ã«åŠçãããããšãä¿èšŒããããã«IPNãå®è£
ããå¿
èŠããããŸãã
æ¯èŸŒéè¡ã§ãæ¯æãã®å Žåã¯åäœããŸããã
@carlituxmanã¯ã誰ããã³ã¡ã³ãã§ããã»ã©è©³çŽ°ã§ã¯ãããŸããããwoocommerce ajaxãåã³å€æŽããããããwoocommerce3.3.5ã§ç¶æ³ãå€ãã£ãå¯èœæ§ããããŸãã ãªãŒãã³ãã«ãªã¯ãšã¹ãã®äž¡æ¹ã§ãã¹ãããå¿ èŠããããŸãã1ã€ã¯ãã®åé¡ãä¿®æ£ããããã«ææ¡ããããã1ã€ã¯ajaxã®åé¡ãä¿®æ£ããããã«ææ¡ãããŠããŸãã
ãããã ajaxä¿®æ£ã®åé¡ã¯äœã§ããïŒ
ïŒ329ãšèšããšæããŸããïŒ
ïŒ329ãšïŒ300ã®ä¿®æ£ãé©çšããŸããããæ©èœããŸããã§ããã
ç§ã¯åãïŒ332ã®åé¡ãæ±ããŠããŸã
ããŠãããªãã¯ã©ã®ããŒãžã§ã³ã®woocommerceã䜿çšããŠããŸããïŒ
woocommerce 3.3.5
ãã®åé¡ã®è§£æ±ºçã¯ãããŸããïŒ ç§ãã¡ã®åºã®1ã€ã§ããã¯æ¬åœã«æªãã§ãã ãŠããŒã¯ãªååãããããããïŒåšåº«ã¯1ã€ã®ã¿ïŒã1ã€ã®èšèªã§æ³šæããå Žåãä»ã®èšèªã®åšåº«ã¯1ã®ãŸãŸã§ãïŒã¡ã€ã³èšèªã®åšåº«ã¯-1ã«èšå®ãããŸãïŒã ããã§ãä»ã®èšèªã§å£²ãåããå Žåã§ããäžæ¹ã®èšèªã§ãŸã åšåº«ããã補åã®äºé泚æãããã€ããããŸã...
ç§ã®ä¿®æ£ããã§ãã¯ããŠããã©ã°ã€ã³ã®ã¹ããã¯ãã¡ã€ã«ã«å€æŽãå ããããšãã§ããŸãïŒ
https://github.com/hyyan/woo-poly-integration/pull/300/files
ãŸã åãå ¥ããããŠããŸããããäœã¶æãåé¡ãªã䜿çšããŠããŸãã
圌ãããã€ãç§ã®ãã«ãªã¯ãšã¹ããåãå ¥ããããšãé¡ã£ãŠããŸã...
@Tiiããããšããç§ã¯ããªãã®ä¿®æ£ãè©Šã¿ãŸãã 圌ããããªãã®ãã«ãªã¯ãšã¹ããåãå ¥ããããšãé¡ã£ãŠããŸãã ã³ã¢ãã¡ã€ã«ã«è¿œå ããå¿ èŠãããæåã®ãã°ä¿®æ£ã§ã¯ãããŸããã çŸåšã®ãã©ã°ã€ã³ã®ããŒãžã§ã³ã¯æŽæ°ã§ããŸããã :(
ãã®ä¿®æ£ã¯ç§ãå©ããŸããã§ãã..åšåº«ã¯ãã®èšèªã§ã®å€æŽã®ã¿ã§ãç§ããè³Œå ¥ããããã®ã§ãã ãã©ãšãã£ã®ããæ ªãçšæããŸããã 誰ãã解決çãæã£ãŠããŸããïŒ
@StiboçŸåšã®ãã©ã°ã€ã³ããŒãžã§ã³ãæŽæ°ã§ããªãã®ã¯ãªãã§ããïŒ
ä»ã®å€æŽãå ããå¿
èŠãããå Žåã¯ãgithubã§ç¬èªã®ãã©ã³ããäœæããããã§å€æŽããã§ãã¯ã€ã³ããŠããã«ãªã¯ãšã¹ããçºè¡ããŠã¿ãŸãããã
ãã®ãªãã·ã§ã³/ä¿®æ£ã¯ç§ã«ã¯æ©èœããŸããã§ããã :(
ç§ã¯å®éã«ã³ãŒãå šäœãæžãçŽããŸãã
`
ä¿è·ãããé¢æ°ã®å€æŽïŒWC_Order_Item_Product $ itemã$ action = self :: STOCK_REDUCE_ACTIONïŒ{
$productID = Utilities::get_order_item_productid($item);
$productObject = wc_get_product($productID);
$orderLang = pll_get_post_language($item->get_order_id());
if ($productObject && $orderLang) {
$translations = Utilities::getProductTranslationsArrayByObject($productObject);
$isManageStock = $productObject->managing_stock();
$method = ($action === self::STOCK_REDUCE_ACTION) ?
'decrease' :
'increase';
$change = ($action === self::STOCK_REDUCE_ACTION) ?
Utilities::get_order_item_quantity($item) :
Utilities::get_order_item_change($item);
$mainStock = null;
$mainStockId = null;
$products = array();
foreach ($translations as $ID) {
$product = wc_get_product($ID);
$stock = $product->get_stock_quantity();
if ($mainStock === null) {
$mainStock = $stock;
$mainStockId = $ID;
} else {
if ($method === 'decrease') {
if ($mainStock > $stock) {
$mainStock = $stock;
$mainStockId = $ID;
}
} else {
if ($mainStock < $stock) {
$mainStock = $stock;
$mainStockId = $ID;
}
}
}
}
unset($products[$mainStock]);
foreach ($translations as $ID) {
if ($ID === $mainStockId) continue;
if ($isManageStock) {
\wc_update_product_stock($ID, $change, $method);
}
$general = Settings::getOption(
'general', MetasList::getID(), array('total_sales')
);
if (in_array('total_sales', $general)) {
update_post_meta($ID, 'total_sales', get_post_meta($mainStockId, 'total_sales', true)
);
}
}
}
}
`
ãããã£ãŠãç§ã®ã¢ãããŒãã¯ãä»ã®åšåº«ãšã¯ç°ãªãåšåº«ããã§ãã¯ãããã®äžã®ãã¹ãŠã®åšåº«ãåæããããšã§ããã
ããŸãå¹ççã§ã¯ãããŸããããIPNãä»ããŠèšèªãååŸã§ããããã«ãªããŸã§ã¯æ£åžžã«æ©èœããŠããŸãã
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)
ä¿è·ãããé¢æ°ã®å€æŽã®ãã¹ãŠã®ã³ãŒãã貌ãä»ããããšãã§ããŸããïŒ
åãåé¡ãçºçããŸãïŒ/
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)
ããªãšãŒã·ã§ã³ã®äœæ¥ãããªãã£ãããšã«æ³šæããŠãã ãã
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)ããªãšãŒã·ã§ã³ã®äœæ¥ãããªãã£ãããšã«æ³šæããŠãã ãã
ä¿è·ãããé¢æ°ã®å€æŽã®ãã¹ãŠã®ã³ãŒãã貌ãä»ããããšãã§ããŸããïŒ
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)ããªãšãŒã·ã§ã³ã®äœæ¥ãããªãã£ãããšã«æ³šæããŠãã ãã
ä¿è·ãããé¢æ°ã®å€æŽã®ãã¹ãŠã®ã³ãŒãã貌ãä»ããããšãã§ããŸããïŒ
ç解ã§ããŸãããé¢æ°å šäœãã³ããŒããŸãã...
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)ããªãšãŒã·ã§ã³ã®äœæ¥ãããªãã£ãããšã«æ³šæããŠãã ãã
ä¿è·ãããé¢æ°ã®å€æŽã®ãã¹ãŠã®ã³ãŒãã貌ãä»ããããšãã§ããŸããïŒ
ç解ã§ããŸãããé¢æ°å šäœãã³ããŒããŸãã...
åäœããŸããã§ããã åãåé¡ãçºçããŸããïŒ/ã https://i.ibb.co/kHNW6fc/stockissue.jpg
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)ããªãšãŒã·ã§ã³ã®äœæ¥ãããªãã£ãããšã«æ³šæããŠãã ãã
ä¿è·ãããé¢æ°ã®å€æŽã®ãã¹ãŠã®ã³ãŒãã貌ãä»ããããšãã§ããŸããïŒ
ç解ã§ããŸãããé¢æ°å šäœãã³ããŒããŸãã...
åäœããŸããã§ããã åãåé¡ãçºçããŸããïŒ/ã https://i.ibb.co/kHNW6fc/stockissue.jpg
wp-content / plugins / woo-poly-integration / src / Hyyan / WPI / Product / Stock.phpããã®æ©èœå€æŽãç§ã®ãã®ã«çœ®ãæããŸãããïŒ
ç§ã¯ä»æããã䜿çšããŠããŸãããããŠç§ã¯åäžã®åé¡ãæã£ãŠããŸããã§ããã
ããã«ã¡ã¯ãã£ã€ã
ä»æ¥ã¯è©ŠããŠã¿ãŸã:)ããªãšãŒã·ã§ã³ã®äœæ¥ãããªãã£ãããšã«æ³šæããŠãã ãã
ä¿è·ãããé¢æ°ã®å€æŽã®ãã¹ãŠã®ã³ãŒãã貌ãä»ããããšãã§ããŸããïŒ
ç解ã§ããŸãããé¢æ°å šäœãã³ããŒããŸãã...
åäœããŸããã§ããã åãåé¡ãçºçããŸããïŒ/ã https://i.ibb.co/kHNW6fc/stockissue.jpg
wp-content / plugins / woo-poly-integration / src / Hyyan / WPI / Product / Stock.phpããã®æ©èœå€æŽãç§ã®ãã®ã«çœ®ãæããŸãããïŒ
ç§ã¯ä»æããã䜿çšããŠããŸãããããŠç§ã¯åäžã®åé¡ãæã£ãŠããŸããã§ããã
ã¯ãã
ä¿®æ£ã¯ç§ã«ãšã£ãŠãæ©èœããŸãã...
@fkoomek @bmpf @Stibo @Tiiããå®å šãªä¿®æ£ã®ããã«ããã®çœ®æStock.phpãã¡ã€ã«ãè©ŠããŠãã ãã
æãåèã«ãªãã³ã¡ã³ã
ç§ã®ä¿®æ£ããã§ãã¯ããŠããã©ã°ã€ã³ã®ã¹ããã¯ãã¡ã€ã«ã«å€æŽãå ããããšãã§ããŸãïŒ
https://github.com/hyyan/woo-poly-integration/pull/300/files
ãŸã åãå ¥ããããŠããŸããããäœã¶æãåé¡ãªã䜿çšããŠããŸãã
圌ãããã€ãç§ã®ãã«ãªã¯ãšã¹ããåãå ¥ããããšãé¡ã£ãŠããŸã...