Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

205
Visualizações
Guardar publicación y agregar meta de publicación ejecutándose dos veces

Estoy tratando de agregar o actualizar dos publicaciones meta al guardar una publicación. Agregue si es una publicación nueva y actualice si existe, pero esta función crea cuatro en la base de datos en lugar de dos meta.

 add_action( 'save_post', 'add_rewards'); global $WCFM, $WCFMmp; function add_rewards ($product_id){ if($product_id){ $post_type = get_post_type($product_id); if($post_type == 'product'){ $product = wc_get_product( $product_id ); $reg_price = $product->get_regular_price(); $sal_price = $product->get_sale_price(); $pric = $product->get_price(); add_post_meta($product_id,'main_reward', $reg_price); add_post_meta($product_id,'sub_reward', $sal_price); } } }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como se explica en el manual de save_post , debe usar save_post_{$post->post_type} que minimiza las llamadas a save_post en otros tipos de publicaciones. También es una buena idea verificar el autoguardado.

Además, si usa update_post_meta en lugar de add_post_meta , terminará con solo una instancia de cada uno. Como explica en el manual de esa función, dice:

Si el metacampo de la publicación no existe, se agregará y se devolverá su ID. Se puede usar en lugar de add_post_meta().

 add_action( 'save_post_product', 'so71077799_add_rewards', 99, 1 ); function so71077799_add_rewards( $product_id ) { // Check to see if we are autosaving, if so, exit. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } if ( isset( $_POST['_regular_price'] ) ) { update_post_meta( $product_id, 'main_reward', number_format( floatval( $_POST['_regular_price'] ), '2' ) ); } if ( isset( $_POST['_sale_price'] ) ) { update_post_meta( $product_id, 'sub_reward', number_format( floatval( $_POST['_sale_price'] ), '2' ) ); } }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda