Proveedores de productos de WooCommerce: actualice los campos personalizados de taxonomía

2 minutos de lectura

Todo esto se trata de WooCommerce y la extensión Product Vendor.

En mi función, estoy creando nuevos términos de taxonomía (proveedores de productos) cada vez que se envía mi formulario de gravedad; sin embargo, hay campos personalizados adicionales que deseo completar.

Lo siguiente funciona para actualizar el término nombre y slug. Estoy tratando de actualizar campos como el correo electrónico de PayPal, el logotipo del proveedor, etc.

Para esta prueba, configuré manualmente las siguientes variables.

$user="formname";
$email="[email protected]";
$description = 'this is a test';

$return = wp_insert_term(
  $user, // the term
  'wcpv_product_vendors', // the taxonomy
  array(
    'description'=> $description,
    'slug' => $user,
  )
);

// Update vendor data
$vendor_data['paypal_email'] = $email; // The email used for the account will be used for the payments
$vendor_data['commission']   = '50'; // The commission is 50% for each order

update_option( 'shop_vendor_' . $return['term_id'], $vendor_data );

// Update vendor data
$vendor_data['paypal_email'] = $email; // The email used for the account will be used for the payments
$vendor_data['commission']   = '50'; // The commission is 50% for each order
$vendor_data['admins'][]     = $customer_id; // The registered account is also the admin of the vendor

update_option( 'shop_vendor_' . $return['term_id'], $vendor_data );

La función se ejecuta cuando se envía el formulario, simplemente no agrega datos en los campos de taxonomía del proveedor.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Código completo

//Woocommerce - ETSY - Import
function create_vendor_form( $entry, $form ) {

//////////////////////////////////////////////////////////////////////////// GET DATA FROM API

$user = rgar( $entry, '1' );
$email    = rgar( $entry, '2' );
$description = rgar( $entry, '3' );

$return = wp_insert_term(
  $user, // the term
  'wcpv_product_vendors', // the taxonomy
  array(
    'description'=> $description,
    'slug' => $user,
  )
);

// Update vendor data
$vendor_data['paypal_email'] = $email; // The email used for the account will be used for the payments
$vendor_data['commission']   = '50'; // The commission is 50% for each order
$vendor_data['admins'][]     = $customer_id; // The registered account is also the admin of the vendor

update_option( 'shop_vendor_' . $return['term_id'], $vendor_data );

////////////////////////////////////////////////////////// end GET DATA FROM API

}
add_action( 'gform_after_submission_2', 'create_vendor_form', 10, 2 );

Primero agrega los datos a la matriz $vendor_data y luego los aplica usando lo siguiente:

//Add the data to the array
$vendor_data['paypal'] = $email;
$vendor_data['profile'] = $description;

//Update the term meta with the above values.
update_term_meta($return['term_id'], 'vendor_data', $vendor_data);

  • ¿Cómo supiste que era específicamente ‘perfil’ lo que necesitabas usar? Por ejemplo, es posible que haya adivinado ‘vendor_profile’ o algo así.

    – muelle

    04/10/2016 a las 21:25

¿Ha sido útil esta solución?