Вообщем нужно как-то сделать так, чтобы избранные работали по такой схеме:
При клике по иконке добавляется товар в избранное, далее при повторном клике - товар удаляется из избранного
Также выводится счетчик (counter), если массив $data пустой, то $counter = 1;
Как вообще оптимизировать вывод counter ? Или если работает, то оставить так ?
Вот пример:
function add_to_id() {
if ( isset( $_POST['variation_id'] ) && ! empty( $_POST['variation_id'] ) ) {
$value = intval( $_POST['variation_id'] );
} else if ( isset( $_POST['product_id'] ) && ! empty( $_POST['product_id'] ) ) {
$value = intval( $_POST['product_id'] );
} else {
wp_send_json_error();
}
$counter = 0;
if ( isset( $_COOKIE['wp_id'] ) ) {
$data = [];
$data = explode( ',', $_COOKIE['wp_id'] );
if ( in_array( $value, $data ) ) {
unset( $data[ array_search( $value, $data ) ] );
$value = implode( ',', $data );
setcookie( "wp_id", $value, time()+86400 * 30, COOKIEPATH, COOKIE_DOMAIN );
wp_send_json_success( count( $data ) );
return;
}
array_push( $data, $value );
$value = implode( ',', $data );
}
setcookie( "wp_id", $value, time()+86400 * 30, COOKIEPATH, COOKIE_DOMAIN );
if ( !empty( $data ) ) {
wp_send_json_success( count( $data ) );
} else {
wp_send_json_success( $counter + 1 );
}
}