Ich möchte diese Funktion nur ausführen, wenn der aktuell angemeldete Benutzer der Autor des Beitrags ist
global $user_ID;
$admin_user = get_user_by( "id", $user_ID );
$selected = empty( $post->ID ) ? $user_ID : $post->post_author;
function return_custom_price( $post ) {
global $post;
$new_total = get_post_meta( $post->ID, "_total_egp", true);
$price = get_post_meta($post->ID, "_regular_price", true);
//$sale_price = get_post_meta($post->ID, "_sale_price", true);
$now_price = get_post_meta($post->ID, "_price", true);
$woo_usd_rate = get_post_meta( $post->ID, "_usd_rate", true);
$woo_price_usd = get_post_meta( $post->ID, "_price_usd", true);
$cog = $woo_price_usd * $woo_usd_rate;
if($user_ID == $selected ){
update_post_meta($post->ID, "_regular_price", $new_total);
update_post_meta($post->ID, "_sale_price", "");
update_post_meta($post->ID, "_price", $new_total);
update_post_meta( $post->ID, "_wc_cog_cost", $cog );
}
}
add_action("save_post", "return_custom_price");
Ich habe es versucht, aber es funktioniert nicht und es lief trotzdem
was ich versuche zu tun, ist das Wenn Benutzer mithilfe von woocommerce vom Frontend aus in WordPress posten, wird der veröffentlichte Beitrag zu WordPress im Entwurfsstatus hinzugefügt
Was passiert gerade jetzt?Wenn der Administrator auf "Veröffentlichen" geklickt hat, wird die Funktion ausgeführt und die Post-Metas aktualisiert. Ich möchte die Post-Metas nicht aktualisieren, es sei denn, der Administrator, der den Beitrag veröffentlicht, ist der aktuelle Eigentümer / Autor des Beitrags und der Administrator, der die Veröffentlichung genehmigt Der Post ist nicht der Postautor, der Post wird einfach ohne Metasupdates veröffentlicht
Antworten:
0 für die Antwort № 1Die Lösung befand sich in der Reihenfolge, in der die Aktion aufgerufen wurde, und die save_post wird beim Aktualisieren des Beitrags trotzdem ausgeführt, ohne irgendwelche Prüfungen durchzuführen
Das kann also eine Lösung sein
function return_custom_price( $post ) {
global $post;
$market = get_post_meta( $post->ID, "market", true);
if($market == "" ){
return;
}
$new_total = get_post_meta( $post->ID, "_total_egp", true);
$price = get_post_meta($post->ID, "_regular_price", true);
//$sale_price = get_post_meta($post->ID, "_sale_price", true);
$now_price = get_post_meta($post->ID, "_price", true);
$woo_usd_rate = get_post_meta( $post->ID, "_usd_rate", true);
$woo_price_usd = get_post_meta( $post->ID, "_price_usd", true);
$cog = $woo_price_usd * $woo_usd_rate;
update_post_meta($post->ID, "_regular_price", $new_total);
update_post_meta($post->ID, "_sale_price", "");
update_post_meta($post->ID, "_price", $new_total);
update_post_meta( $post->ID, "_wc_cog_cost", $cog );
}
add_action("save_post", "return_custom_price");