Как обновить пользовательские метаданные в зависимости от определенных условий в WooCommercePhp

Кемеровские программисты php общаются здесь
Ответить
Гость
 Как обновить пользовательские метаданные в зависимости от определенных условий в WooCommerce

Сообщение Гость »


У меня есть несколько настраиваемых полей для товаров в WooCommerce, и они работают хорошо. Вот код:

Код: Выделить всё

add_action( 'woocommerce_product_options_advanced', 'meta_data_custom' );
function meta_data_custom() {

// 1. Partner ID
woocommerce_wp_text_input( array(
'id'            => '_idpartner',
'label'         => __( 'Partner ID', 'woocommerce' ),
'description'   => __( 'Fill in your partner ID.', 'woocommerce' ),
'desc_tip'      => true,
'placeholder'   => __( 'Ex : P1', 'woocommerce' )
) );

// 2. Referral ID
woocommerce_wp_text_input( array(
'id'            => '_idreferral',
'label'         => __( 'Referral ID', 'woocommerce' ),
'description'   => __( 'Fill in your referral ID.', 'woocommerce' ),
'desc_tip'      => true,
'placeholder'   => __( 'Ex : R1', 'woocommerce' )
) );
}

// Save custom field
add_action( 'woocommerce_admin_process_product_object', 'action_woocommerce_admin_process_product_object_meta_data_custom', 10, 3 );
function action_woocommerce_admin_process_product_object_meta_data_custom($product){
// 1. ID Partner
if ( isset( $_POST['_idpartner'] ) ) {
// Update
$product->update_meta_data( '_idpartner', sanitize_text_field( $_POST['_idpartner'] ) );
}

// 1. ID Referral
if ( isset( $_POST['_idreferral'] ) ) {
// Update
$product->update_meta_data( '_idreferral', sanitize_text_field( $_POST['_idreferral'] ) );
}
}
Both the Partner ID and the Referral ID, must be filled in before the product is published. All Partner ID already have a referral ID except for (Partner ID == P1). So, I want to fill referral ID automatically other than partner ID P1.
So far I have tried :

Код: Выделить всё

function update_meta_data_custom(){

global $product;

$idpartner  = $product->get_meta('_idpartner');
$idreferral = $product->get_meta('_idreferral');

//Set referral id Obtained from user meta dinamically
$idreferral = "R13";//examples only

if(!empty($idpartner)){
if($idpartner !== "P1"){

//$product->update_meta_data( '_idreferral', sanitize_text_field( $_POST['_idreferral'] ) );
//update _idreferral with $idreferral
}
else{
if(!$idreferral){
//Give a message to update referral ID or no need to do anything
//Just in case something by human error
}
else{
//No need to do anything or keep the data
}
}
}
else{
//Give a message to update partner ID or no need to do anything
//Just in case something by human error
}
}
but not sure how to achieve it.
Can someone walk me through how to do that?


Источник: https://stackoverflow.com/questions/781 ... oocommerce
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»