- סטטוס
- נפתר
- נפתר בגרסה
- 4.12.0
סקירה כללית של התקלה
לאחר תרגום מוצר, לעיתים וריאציות של המוצר בשפת ברירת המחדל אינן מוצגות יותר בצד הלקוח.
הסיבה לכך היא שה־transient של הווריאציה נשמר בקוד השפה המתורגמת במקום בקוד שפת ברירת המחדל. ה־transient של מוצרי הבן של מוצר בעל וריאציות ב־WooCommerce עשוי לעיתים לקבל ערכים שגויים אם הוא מחושב בעמוד בשפה אחרת.
למרבה הצער, לא הצלחנו לזהות באיזה הקשר הדבר מתרחש.
פתרון עוקף
עד שיהיה לנו מידע טוב יותר על ההקשר, אנו ממליצים להוסיף את קטע הקוד הבא לקובץ functions.php של ערכת העיצוב שלך:
/**
* Prevent issues with product variations transient when it's
* computed in a secondary language page for a product in
* the default language.
*/
add_filter( 'woocommerce_variable_children_args', function( $args ) {
global $sitepress;
$parseQueryAction = [ $sitepress, 'parse_query' ];
if ( remove_action( 'parse_query', $parseQueryAction ) ) {
add_action( 'setted_transient', function() use ( $parseQueryAction ) {
add_action( 'parse_query', $parseQueryAction );
} );
}
return $args;
} );