Aktualisieren Sie das Post-Meta mithilfe des pending_to_publish-Hooks

Unten ist mein Code zum Aktualisieren von Post-Meta.

function changePostExpireDatetime( $post ){ $featurePlanID = get_post_meta($post->ID, 'post_price_plan_id', true ); remove_action('pending_to_publish', 'changePostExpireDatetime', 10, 1); $plan_price = get_post_meta($featurePlanID, 'plan_price', true); update_post_meta($post->ID, 'post_plan_price', $plan_price ); update_post_meta($post->ID, 'featured_post', "1" ); add_action('pending_to_publish', 'changePostExpireDatetime', 10, 1); } add_action('pending_to_publish', 'changePostExpireDatetime', 10, 1); 

Die function wird aufgerufen, aber Meta wurde nicht aktualisiert. Wie kann ich Post-Meta in diesem Hook aktualisieren?

Solutions Collecting From Web of "Aktualisieren Sie das Post-Meta mithilfe des pending_to_publish-Hooks"

Ich neige dazu, den transition_post_status Hook zu verwenden, da er Ihnen so viel Kontrolle darüber gibt, was Sie tun müssen. Überprüfen Sie den Link für alle verfügbaren Statusoptionen. Was mir besonders gefällt, ist, dass das $post Objekt auch an den Hook übergeben wird, so dass Sie auch einen bestimmten Post-Typ für einen bestimmen können.

Sie können etwas wie das folgende versuchen: ( Seien Sie einfach sicher, die Werte zu Ihren eigenen zu aktualisieren, ich verwendete nur mein als Beispiel )

  add_action( 'transition_post_status', function ( $new_status, $old_status, $post ) { // Check if we are transitioning from pending to publish if ( $old_status == 'pending' && $new_status == 'publish' ) { // Check whether or not the meta_key exists already with our value if ( ! add_post_meta( $post->ID, 'post_views_count', 50, true ) ) { update_post_meta ( $post->ID, 'post_views_count', 50 ); } } }, 10, 3 );