Actualizar el stock de productos de Woocommerce utilizando un nuevo campo interno vinculado al ERP

  • Autor Autor linkers
  • Fecha de inicio Fecha de inicio
linkers

linkers

No recomendado
Verificado por Whatsapp
¡Ha verificado su Paypal!
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de 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.
 
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.
 
Atrás
Arriba