2016-06-20 2 views
0

나는 다른 wocommerce 웹 사이트의 API를 가지고 있으며 내 제품 sku와 정보를 가지고 있습니다 새 정보를 만든 후 메타 정보에이 정보를 어떻게 추가 할 수 있습니까? 제품을 만들 때 정보를 API 및 제품 SKU로 가져 와서 게시 메타로 저장하고 싶습니다. WordPress : 제품 woocommerce를 저장하기 전에 새로운 게시 메타를 추가하는 방법

내가이 후크를 발견하지만 난이

<?PHP 
function my_product_att($sku) { 
    // my api codes and take information and use  
    add_post_meta('product_id','key','value'); 
    // i haven't problem here i just need Appropriate hook 
} 
add_action('save_post', 'my_product_att'); // this hook not work for woocommerce 

답변

1

Woocommerce 제품은 워드 프레스 게시물입니다 작동하지 않는 것 같아요. save_post & $post_id과 같은 wordpress 후크를 인수로 사용할 수 있습니다. $sku이 잘못 전달되었습니다.

add_action('save_post', 'wpse_110037_new_posts'); 
function wpse_110037_new_posts($post_id){ 
    $post_type = get_post_type($post_id); 
    if($post_type == 'products') { 
     add_post_meta($post_id,'key','value'); 
    } 
} 
+0

이 코드는 woocommerce 제품 또는 모든 WordPress 게시물에서 작동합니다. –

+0

기본적으로 모든 게시물 유형에서 작동하지만, 함수 내에서 게시물 유형을 찾을 수 있으며 게시물 유형이 제품 일 경우 게시물 메타를 추가하는 조건을 지정할 수 있습니다. – Milap

+0

THX so much bro –

0

아래 코드를 사용해보십시오. 코드 $ unique은 메타 값이 고유해야하는지 여부에 따라 true 또는 false입니다.

add_action('transition_post_status', 'product_created_function', 10, 3); 
function product_created_function($newstatus, $oldstatus, $post) { 
    if($oldstatus != 'publish' && $newstatus == 'publish' && !empty($post->ID) && in_array($post->post_type, array('product'))) { 
     add_post_meta($post->ID, $key, $value,$unique); 
    }  
} 
+0

이 코드는 woocommerce 제품 또는 모든 WordPress 게시물에서 작동합니다. –

+1

이 단축 코드는 게시물에도 사용할 수 있습니다. 그러나 당신은 약간의'in_array ($ post-> post_type, array ('post'))'또는 어떤 포스트 유형 이건간에 코드를 변경할 필요가있다. – vidhi

0
add_action('save_post', 'prowp_save_meta_boxdddd'); 
function prowp_save_meta_boxdddd($post_id) { 
global $wpdb; 
$table_prefix = $wpdb->prefix; 
$tablename = $table_prefix.'postmeta'; 

$ wpdb-> 쿼리 ($ wpdb->를 준비 ('UPDATE'$ tablename에 'SET meta_value = "테스트"WHERE post_id를 ='$의 post_id를)...) }

관련 문제