2016-06-20 5 views
0

ich habe eine API von einem anderen Wocommerce-Website und nehmen Sie einige Informationen mit meinem Produkt sku Wie kann ich diese Informationen zu post meta nachdem neues Produkt? Ich möchte, wenn ich ein Produkt erstellen, die Informationen mit API und Produkt SKU und speichern, um Meta zu veröffentlichen.WordPress: wie neue Post-Meta vor dem Speichern von Produkt woocommerce

fand ich diesen Haken, aber ich denke, das

<?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 

Antwort

1

WooCommerce Produkte sind Wordpress Beiträge nicht funktioniert. Sie können Wordpress-Hooks wie save_post & $post_id als Argument verwenden. Sie übergeben $sku, was falsch ist.

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

Dieser Code funktioniert nur auf woocommerce Produkt oder alle Wordpress-Beiträge?! –

+0

Standardmäßig funktioniert es für alle Post-Typen, aber Sie können Post-Typ innerhalb der Funktion finden und eine Bedingung zum Hinzufügen von Post-Meta, wenn Post-Typ ist nur Produkt. – Milap

+0

THX so viel bro –

0

Versuchen Sie den folgenden Code. Beachten Sie, dass in Code $ unique true oder false basierend darauf ist, ob der Metawert eindeutig sein soll oder nicht.

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

dieser code funktioniert nur auf woocommerce produkt oder alle wordpress posts?! –

+1

Dieser Shortcode funktioniert auch für Post. aber dafür musst du den Code "in_array" ändern ($ post-> post_type, array ('post')) 'oder welcher Post-Typ auch immer ist. – 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-> query (wpdb- $> prepare ('UPDATE' $ Tabellenname 'SET meta_value = "test" WHERE post_id =' $ post_id)...); }

Verwandte Themen