2013-11-28 6 views
3

WooCommerce에서 프로그래밍 방식으로 사용자 지정 제품 특성 및 변수를 추가하는 방법을 알려주십시오. Woocommerce GUI에서이 작업을 쉽게 수행 할 수 있지만 functions.php를 통해이 작업을 수행해야합니다.WooCommerce에서 사용자 지정 제품 특성 및 변수 추가 프로그래밍 방식으로

속성이 [클래스]이고 일부 변수는 [A, B, C, D]로되어 있습니다. 카트 및 상점 페이지에 추가, 나는이 기능을 시도 alraedy하지만 페이지에 어떤 일을 추가하지 않은 :

function woocommerce_variable_add_to_cart() { 
    //Type attribute 
    $product_attributes['type'] = array(
     //Make sure the 'name' is same as you have the attribute 
     'name' => htmlspecialchars(stripslashes('Class')), 
     'value' => $attributes, 
     'position' => 1, 
     'is_visible' => 1, 
     'is_variation' => 1, 
     'is_taxonomy' => 0 
    ); 

//Add as post meta 
update_post_meta($post_id, '_product_attributes', $product_attributes); 

} 

감사

+0

분류 (그냥 추측)로 간주되지 않기 때문에 내 생각은 항상 거짓해야한다입니다 이? – Behseini

+0

전에이 작업을했는데 코드 (NDA)를 게시 할 수는 없지만'woocommerce_cart_loaded_from_session','woocommerce_before_cart' 및 (AJAX를 사용하는 경우)'woocommerce_ajax_added_to_cart'에 익숙해 져야한다고 말할 수 있습니다. '$ woocommerce-> session'과'$ woocommerce-> cart'를 사용하여 AJAX를 사용한다면 두 곳에서 업데이트 할 수 있습니다. 장바구니 항목의 속성을 프로그래밍 방식으로 조정할 때 필요한 요소입니다. – Dez

+0

http://wordpress.stackexchange.com/questions/124758/adding-custom-product-attribute-and-variable-in-woocommerce-programatically – GavinR

답변

0

을 그냥 함수는 위의 "$ 속성을 참조하는 눈치 "이 함수에서 정의 된 것처럼 보이지 않습니다. 다행히 그 함수의 작업 카피가 그렇지 않으면 value => NULL로 고정되어 아마 업데이트가 실패한 것입니다.

다른 한편으로는 $ product_attributes가 잘못 정의 된 것 같습니다 (100 % 확실하지는 않습니다).

값 "my_custom_value"로 "my_attr_name"이라는 사용자 정의 속성을 작성하고 MySQL 데이터베이스를 점검하여 저장 방법을 확인합니다. meta_key = _product_attributes 및 "meta_value"serialized과 함께 테이블 "wp_postmeta"에 저장됩니다. 그래서 나는 그 직렬화 된 값을 복사하고 처음에 어떻게 정의되어야 하는지를보기 위해 그것을 직렬화 해제하려고했습니다. 속성 키 (예 : 'type')와 하위 배열의 첫 번째 키 값이 일치해야한다는 점을 제외하면 귀하의 것처럼 보입니다. 보시다시피

Array 
(
    [john-doe] => Array 
     (
      [name] => 'John Doe' 
      [value] => my_custom_value 
      [position] => 0 
      [is_visible] => 1 
      [is_variation] => 0 
      [is_taxonomy] => 0 
     ) 

) 

배열의 키 존 - 미상 ~ (또한 홍길동입니다) 부분 배열의 첫 번째 키 :

이 내 예입니다. 귀하의 경우 :

type <> htmlspecialchars(stripslashes('Class')) 

그것은 언급 할 가치가 당신의 '이름'=> '홍길동'은 다음 마스터 키 '존 - 미상'(공간 교체 등의 소문자와 마이너스) 같은 것을해야합니다. 나는 이것이 필수적인지는 모르겠지만 적어도 이것은 WP 4.2.2가 작동하는 방식이다. 다른 키로서는

:

  • is_visible : 속성이 상품 페이지
  • 위치에 표시되는 경우 : 속성의 순서 (0 = 제 1 = 다음의 속성, 기타); 나는이 것이 항상 정의되어야한다고 생각한다. 그렇지 않으면 첫 번째 (0) 인덱스를 덮어 쓸 위험이있다. 그래서 새로운 것을 추가하기 전에 얼마나 많은 지 알아 내야합니다. ($ meta = get_post_meta (get_the_ID(), '_product_attributes') 참조)
  • is_variation : 아마도 smth. 변수 제품과 함께 할
  • is_taxonomy은 (?!) 다음 meta_key이 하나가 어떤 생각에 있습니까
관련 문제