WordPress Benutzer-Meta über AJAX hinzufügen/entfernen

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: WordPress Benutzer-Meta über AJAX hinzufügen/entfernen

by Guest » 27 Jan 2025, 03:30

Ich versuche, eine einfache "Lieblings" -Produktliste zu erstellen. Wenn Sie eine Liste von Produkten anzeigen, kann jemand auf eine Schaltfläche klicken, die sie zu Ihren Favoriten hinzufügt. Meta. Wenn Sie das nächste Mal auf die gleiche Schaltfläche klicken, sollte das ProduktID aus dem Benutzer -Meta entfernen. Wenn ich jedoch erneut darauf klicke, gibt es mir einen Fehler, anstatt die ID aus dem Benutzer -Meta zu entfernen. Der Fehler lautet nur "Fehleraktualisierung des Benutzers Meta".
Ich glaube > Hier wird die PHP -Funktion von Ajax < /p>
aufgerufen

Code: Select all

function update_user_meta_ajax() {
$user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : 0;
$product_id = isset( $_POST['product_id'] ) ? sanitize_text_field( $_POST['product_id'] ) : '';
$meta_key = isset( $_POST['meta_key'] ) ? sanitize_text_field( $_POST['meta_key'] ) : '';
$meta_value = isset( $_POST['meta_value'] ) ? sanitize_text_field( $_POST['meta_value'] ) : '';

// Get Saved Array
$fav_products = get_user_meta($user_id, 'fav_products', true);

// Check if array is empty
if (empty($fav_products)) {
$fav_products = array();
}

// Add or Remove Item from Array
if($meta_value == 'yes'){
$fav_products[] = $product_id;
}else{
unset($fav_products[$product_id]);
}

if (! current_user_can('edit_user', $user_id)) {
wp_send_json_error(array('message' => 'Insufficient permissions.'));
}

if (update_user_meta($user_id, $meta_key, $fav_products)) {
wp_send_json_success();
} else {
wp_send_json_error(array('message' => 'Failed to update user meta.'));
}

wp_die();
}

Top