μ λ WordPress 4.7.5, WooCommerce 3.0.7 λ° Hyyan WooCommerce Polylangμ λ§μ€ν° λΈλμΉ λ²μ (WC 3 λ³κ²½ μ¬νμ΄ μ μ©λ ν 5μ 15μΌ λ€μ΄λ‘λ)μ μ€ννκ³ μμ΅λλ€.
μ£Όλ¬Έ μ΄λ©μΌμ΄ κ³ κ°μκ² μ μ‘λκ³ κ΄λ¦¬μμκ² λ³ν μ λ³΄κ° μμ λ.
μ νμ λ¨μΌ μμ±μ κ° κ°μ λν΄ μμ±λ λ³νμ΄ μλ κ°λ³ μ νμ
λλ€.
λ μ΄μμ μμ±μ΄ μλ μ νμ κ²½μ° νλμ μμ±μ λν΄ μμ±λ λ³νμ΄ μμ΅λλ€. μ΄ κ²½μ° λ€λ₯Έ μμ± μ 보 κ° μ΄λ©μΌμ λνλ©λλ€.
Hyyan WooCommerce Polylangμ λΉνμ±ννλ©΄ λ³ν μ λ³΄κ° μ΄λ©μΌμ λνλ©λλ€.
μ΄λ©μΌμ μ ν μμ: Unicorn Fantasy Dog Bandana
νλ¬κ·ΈμΈ λΉνμ±ν μ: Unicorn Fantasy Dog Bandana - 12μΈμΉ
$item_name κ°μ 보기 μν΄ 'woocommerce_order_item_name' νν°λ₯Ό μ€νν΄ λ³΄μμ§λ§ νμ nullμ΄μμ΅λλ€!
Hyyan\WPI\Order.phpμ __construct()μμ 'translateProductNameInOrdersDetails' κΈ°λ₯μ λν add_filter νΈμΆμ λΉνμ±ννμ¬ λ¬Έμ λ₯Ό 격리νλ €κ³ νμ§λ§ κ²°κ³Όμ μΌλ‘ NULL μ ν μ΄λ¦μ΄ μμ±λμμ΅λλ€!
μ΄λ€ μμ΄λμ΄λΌλ μλν΄λ³΄κ³ λλ²κ·Έ λ©μμ§λ₯Ό μΆκ°νκ² λμ΄ κΈ°μ©λλ€.
νμ¬ Hyyan WooCommerce Polylang Integration 1.0μΌλ‘ μΆμλ μ΅μ λ²μ μΌλ‘ λ€μ μλνμμμ€.
첫 λ²μ§Έ wooCommerce 3.0 λ³κ²½ μ¬νμλ λ³νμ λν μ² μ ν κ²ν κ° ν¬ν¨λμ§ μμμ΅λλ€.
μ¦, λλ κ·Έκ²μ λ€μ ν μ€νΈνκ³ μΌλ° ν μ€νΈ μ€μΉμμ λ€μμ μνν©λλ€.
κ·Έλ° λ€μ woo-poly-integrationκ³Ό polylangμ λͺ¨λ λλ©΄ λμΌν κ²°κ³Όκ° λνλ©λλ€. μ΄κ²μ WooCommerce ν
νλ¦Ώ μ체μ μμ΅λλ€.
λ°λΌμ νμν κ²½μ° ν
νλ¦Ώμ μ‘°μ νκ±°λ WooCommerceμ λ¬Έμ λ₯Ό μ κΈ°ν μ μμ΅λλ€.
μ¬κΈ°μμ λ€μ νμΈνκ³ νμΈνμμμ€.
ν
μ€νΈ μ£Όλ¬Έμ νλλ° λ μ΄λ©μΌμ λ³ν μ λ³΄κ° μμμ΅λλ€.
λ¬Έμ λ₯Ό λλ²κΉ
νλ λ° λμμ λ릴 μ μλ λ°©λ²μ΄ μμ΅λκΉ?
μ, Polylangκ³Ό woo-polyκ° κΊΌμ Έ μμ λ λ³ν μ λ³΄κ° μ΄λ©μΌμ μλ κ²μ νμΈ
λλ woo-polyλ₯Ό λΉνμ±ννκ³ μ΄μ κ΄λ¦¬μμκ² λ³΄λ΄λ μ΄λ©μΌμ λ³ν μ λ³΄κ° νμλ©λλ€.
μ: "Navy Movie Stars Dog Bandana β 26inch"("26inch"λ λ³ν μ 보μ).
λ€μ woo-polyλ₯Ό νμ±ννλλ° λ³ν μ λ³΄κ° λ€μ μ¬λΌμ‘μ΅λλ€.
μΆκ° μ 보:
κΈ°λ³Έ μΈμ΄ λλ μ 2 μΈμ΄λ‘ λμ΄ μμ΅λκΉ?
κΈ°λ³Έ μΈμ΄.
μ 2μΈκ΅μ΄λ‘ ν΄λ³΄μκ² μ΄μ? (μ΄ μ¬μ΄νΈμλ μμ΄μ λ
μΌμ΄μ 2κ°μ§ νμ± μΈμ΄λ§ μμ΅λλ€).
μ’μ΅λλ€. λ¬Έμ λ λ€μκ³Ό κ°μ΅λλ€.
μ£Όλ¬Έ.php l. 118** ν¨μ λ²μProductNameInOrdersDetails
μ(λ) μ리νκ² κ° μ£Όλ¬Έ νλͺ©μ λ§ν¬λ₯Ό μΆκ°νμ¬ μ ν μΈλΆ μ λ³΄λ‘ λμκ°κ³ λ³ν μ΄λ¦μ [μ€ν¨] λ²μνλ €κ³ ν©λλ€.
μ΄ ν¨μμ 첫 λ²μ§Έ μ€μ μΆκ°νμ¬ μ΄λ₯Ό μ μ μμ΅λλ€.
return $name;
μ΄λ©μΌ λ±μ μ ν λ³ν μ΄λ¦μ΄ νμλμ§λ§ νμ μμ κΈ°λ³Έ μΈμ΄λ‘ νμλ©λλ€.
μΈλ» 보기μ μ ν λ§ν¬ μΆκ°λ μ’μ κΈ°λ₯μΌλ‘ 보μ΄λ©° μ€μ λ‘ νμ€ WooCommerce κ³ κ° μ΄λ©μΌμ λ§ν¬κ° μ ν ν¬ν¨λμ΄ μμ§ μμ (!!) λ§€μ° μ λ¦λ°μ΄μ²λΌ 보μ΄μ§λ§ μλ§λ μ΄ νλ¬κ·ΈμΈμ μμ
μ΄ μλμ΄μΌ ν κ²μ
λλ€. μ΄ λ°©λ²μΌλ‘ μ΄λ©μΌ ν
νλ¦Ώμ μμ ν©λλ€.
κ·Έλ¦¬κ³ μλ§λ wooCommerceκ° μ΄κ²μ νμ§ μλ μ΄μ κ° μμ κ²μ
λλ€. κ³ κ°μ μ΄λ©μΌμ μμμ¦μΌλ‘ μ€λ 보κ΄ν μ μμ§λ§ μ νμ λμ€μ νΈμ§λμ΄ λ μ΄μ λ§ν¬μ μΌμΉνμ§ μμ μ μμ΅λλ€. κ³ κ°μ΄ λμ€μ μ΄μ μ£Όλ¬Έ μ΄λ©μΌμ ν΄λ¦νλ©΄ μ’μ§ μμ κ²μ²λΌ 보μ
λλ€.
κ·Έλμ μ΄κ±Έ μ΅μ
μΌλ‘ νλ©΄ λκ² λ€μ...
λλ λν λͺ λ°±ν μΌκ΄μ±μλ νλμ λν μ΄μ κ° μμ΅λλ€.
κ΄μ°° μ μΌλ‘ λλ μλ μ μ§μ΄μ§ μμ μμ λ€μκ³Ό κ°μ νμμ κ°μ§κ³ μμ΅λλ€.
λ°λΌμ μ¬λ°λ₯Έ μ루μ μλ λ€μ μμκ° ν¬ν¨λ μ μμ΅λλ€.
λ Όλ¦¬μ μΌλ‘ μ΄λ¦μ μ¬λ°λ₯΄κ² μ μ₯νλ κ²μ΄ μ΄λ¦μ΄ μ¬μ©λ μ μλ λͺ¨λ κ³³μμ μ΄λ¦μ μ°κ²°νκ³ λ³κ²½νλ κ²λ³΄λ€ λ«μ΅λλ€.
wooCommerce 3.0μλ μ΄μ λν μ½λλ μμ΅λλ€.
class-wc-product-variation-data-store-cpt-php ll.73-83
/**
* If a variation title is not in sync with the parent e.g. saved prior to 3.0, or if the parent title has changed, detect here and update.
*/
if ( version_compare( get_post_meta( $product->get_id(), '_product_version', true ), '3.0', '<' ) && ( $parent_title = get_post_field( 'post_title', $product->get_parent_id() ) ) && 0 !== strpos( $post_object->post_title, $parent_title ) ) {
global $wpdb;
$new_title = $this->generate_product_title( $product );
$product->set_name( $new_title );
$wpdb->update( $wpdb->posts, array( 'post_title' => $new_title ), array( 'ID' => $product->get_id() ) );
clean_post_cache( $product->get_id() );
}
μκ² μ΅λλ€. 볡μ‘ν΄μ§κ³ μμ΅λλ€. wooCommerceμ μ κ³ νλ €κ³ νλλ° 5μΌ μ μ κ΄λ ¨ 체ν¬μΈμ΄ μκ³ 3.0.8μ μΆκ°λμμ΅λλ€. https://github.com/woocommerce/woocommerce/issues/15315
κ·Έλμ κ·Έκ²μ κ²ν νλ κ²μ΄ νλͺ
ν κ²μ
λλ€.
κΈ°λ³Έμ μΌλ‘ wooCommerce 3.0.7μ μ¬μ ν ββμ₯λ°κ΅¬λ λ° μ€μ λ‘ μ£Όλ¬Έμ λ³ν μ€λͺ
μ λ¬Έμ κ° μμ΅λλ€.
λ€μμ Polylang λ° Polylang WooCommerce ν΅ν©μ λ ν μΌλ° μ μ¬μ©ν μνμ€μ
λλ€.
mysql> select ID, post_title from wp_posts where ID>456;
+-----+---------------------------------------------+
| ID | post_title |
+-----+---------------------------------------------+
| 457 | Test Sync variations 2 |
| 458 | Test Sync variations 2 - Blue |
| 459 | Test Sync variations 2 - Black |
(μμ± Blueλ μ΄λ¦μ΄ λ°λμμ§λ§ Cart/Orderμ λν μ€λͺ μ μ λλ‘ μ λ°μ΄νΈλμ§ μμμ΅λλ€.)
wooCommerceκ° λ§ν¬λ₯Ό μννλ λ°©λ²:
μ μ₯ μ:
class-wc-product-variable.php save() l.394 νΈμΆ
$this->data_store->sync_variation_names( $this, $previous_name, $new_name );
class-wc-product-variable-data-store-cpt.php sync_variation_names() ll.304++
μ μ΄λ¦μ΄ μλ μ΄λ¦ λ΄μμ λ¬Έμμ΄μ λ체ν©λκΉ?
μ¬κΈ°μμ λ²μλ λ³ν λ¬Έμμ΄μ΄ μ νλμ§ μκ³ μ λͺ© λΆλΆλ§ κ΅μ²΄λ©λλ€.
μ΄μ μ견μμ generate_product_title()μ λ΄λΆ λ°μ΄ν° ν΄λμ€μ 보νΈλ ν¨μμ΄λ―λ‘ WooCommerce μΈλΆμμ μ¬μ μλ₯Ό μν΄ μ½κ² μ‘μΈμ€ν μ μμ΅λλ€.
λ°λΌμ μ΄ λͺ¨λ κ²κ³Ό κ΄λ ¨νμ¬ WooCommerce-Polylangμ΄ μλνλ λ°©μμ λλ€. λ³ν μμ€μμ WooCommerce-Polylangμ λ³ν μΈλΆμ λ³΄κ° λ³νμ λ§μ€ν° μΈμ΄ μ¬λ³Έμμ μ μμ μΌλ‘ κ²μλλλ‘ μ체 μ°Έμ‘°λ₯Ό μΆκ°ν©λλ€. λ¬Έμ #168 μ°Έμ‘°
"woocommerce_product_variation_get_name" νν°λ₯Ό μ¬μ©νμ¬ μμ μμ μ¬νμ μ μ©νλ€κ³ μκ°ν©λλ€.
μ λͺ©μμ μ ν μμ±μ λλ λ λ€λ₯Έ ν₯λ―Έλ‘μ΄ λμμ΄ μΈκΈλμ΄ μμ΅λλ€. μ¦, μ λͺ© λ€μ μΈμλμ΄μΌ ν¨μ μλ―Έν©λλ€.
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false' );
κ·Έλ¬λ μ΄κ²μ λλ₯Ό μν΄ μλνμ§ μμ΅λλ€.
μ’μ, μ΄κ²μ WOOCOMMERCEμμ μμ λμμ΅λλ€!!!
μ΅μ μ½λ https://github.com/woocommerce/woocommerce "λ²μ 3.1.0-λ² ν"λ‘ ν
μ€νΈ
3.0.8μμ μΆμλ μμ μ
λλ€.
woo-poly translateProductNameInOrdersDetails() κΈ°λ₯μ λ μνμμ
κ·Έλ° λ€μ woocommerce μμ μ¬νμ΄ μ μ©λ©λλ€.
λν μνλ€λ©΄
add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false' );
μ
λ°μ΄νΈλ WooCommerceμμ μλ
WooCommerce λΈλ‘κ·Έλ₯Ό 보면 3.0.8μ΄ μλ WooCommerce 3.1μΌ μ μμ΅λλ€. https://woocommerce.wordpress.com/
5μ 31μΌμμ 2μ£Όκ° μ§λλ©΄ μΆμ λ μ§κ° 6μ 14μΌμ΄ λ μ μμ΅λλ€.
μ°Έκ³ λ‘ woocommerce/woocommerce#15315λ λ§μ§λ§ μκ°μ 3.0.8μμ μμ λμμ§λ§ λ μ² μ ν κ²ν λ₯Ό ν΅ν΄ μ¬μ ν 3.1λ‘ μμ λμ΄ μμ΅λλ€.
λ°λΌμ μ₯λ°κ΅¬λ/μ£Όλ¬Έμ λ³ν μΈλΆμ 보λ κ·ΈλκΉμ§ κ³μ μ΄μν μ μμ΅λλ€.
μΌλ°μ μΈ κ²°κ³Όλ λ€μκ³Ό κ°μ΅λλ€.
μ€νμΈμ΄ μ ν μ΄λ¦ - _μμ΄ λ³ν μ©μ΄_
μμ± μ΄λ¦ - _μ€νμΈμ΄ λ³ν μ©μ΄_