Atualizar o estoque de produtos do Woocommerce utilizando um novo campo interno vinculado ao ERP

  • Autor Autor linkers
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
linkers

linkers

Beta
No recomendado
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Tengo integrada la tienda via APi con el ERP

¿Cómo crear un nuevo campo interno en cada producto del Woocommerce?

Lo necesito para ahí colocar data de actualización del ERP y cada vez que haya un cambio del stock en vivo, solo los productos con variaciones se actualice y no todos los 5.000 productos.
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Hola linkers,
Yo uso ACF (free) para añadir campos de cualquier tipo a los productos. Funciona bastante bien.
 
Te explico paso a paso para que puedas tenerlo tal que así (como es mi caso)

1596705503642.webp


Te aparece en General donde pones el precio del producto y demás.

-----------------

En functions.php de tu tema (en el tema hijo):


PHP:
// Crear url google maps
add_action( 'woocommerce_product_options_general_product_data', 'add_custom_field_general_product_fields2' );
function add_custom_field_general_product_fields2(){
    global $post;

    $value = get_post_meta( $post->ID, '_url_google_maps', true );

    if(empty($value))
        $value = '';

    echo '<div class="options_group">';

    woocommerce_wp_text_input( array(
        'id'          => 'url_google_maps',
        'label'       => __( 'URL GOOGLE MAP', 'woocommerce' ),
        'placeholder' => 'https://',
        'desc_tip'    => 'true',
        'description' => __( 'URL Google Maps.', 'woocommerce' ),
        'value'       => $value
    ) );

    echo '</div>';
}

// Guardar url google maps
add_action( 'woocommerce_process_product_meta', 'save_custom_field_general_product_fields2' );
function save_custom_field_general_product_fields2( $post_id){

    // Text Field
    $url_google_maps = $_POST['url_google_maps'];
    if( !empty( $url_google_maps ) )
        update_post_meta( $post_id, '_url_google_maps', esc_attr( $url_google_maps ) );
}


Luego, si quieres mostrarlo en la página del producto yo tengo esto puesto (también dentro del functions);

PHP:
<?if (is_product()) { global $product;
    $product_id = $product->get_id();

    // Getting your custom product demo URL
    $url_google_maps = get_post_meta( $product_id, '_url_google_maps', true );
    $puntodeencuentro = get_post_meta( $product_id, '_puntodeencuentro', true );
    $url_google_maps4 = get_post_meta( $product_id, '_url_google_maps4', true );
    $puntodeencuentro4 = get_post_meta( $product_id, '_puntodeencuentro4', true );

    // Add it to your button:
    if( !empty( $url_google_maps ) )
        if( !empty( $puntodeencuentro ) and !empty( $puntodeencuentro4 ) )
            echo '<table class="shop_attributes"><tr>
                <th>Punto de encuentro</th>
                <td><p>'.$puntodeencuentro.'<br><a href="'.$url_google_maps.'" target="_blank" rel="noopener" rel="noreferrer"><strong>Abrir en Google Maps.</strong></a></p>
                <p>'.$puntodeencuentro4.'<br><a href="'.$url_google_maps4.'" target="_blank"><strong>Abrir en Google Maps.</strong></a></p>
                </td></tr><tr></table>';
        if( !empty( $puntodeencuentro ) and empty( $puntodeencuentro4 ) )
            echo '<table class="shop_attributes"><tr>
                <th>Punto de encuentro</th>
                <td><p>'.$puntodeencuentro.'<br><a href="'.$url_google_maps.'" target="_blank" rel="noopener" rel="noreferrer"><strong>Abrir en Google Maps.</strong></a></p>
                </td></tr><tr></table>';
                
        the_content();
}
?>

Respecto a este anterior código, si lo vas a usar ya lo adaptas a tu manera ya que yo tengo ahí más variables metidas y se muestra en una tabla, justo debajo de los atributos.
 
Voltar
Topo