Last active
March 13, 2025 08:13
-
-
Save hssktm/466a64b34f0fab72a3d4baa99833a9d5 to your computer and use it in GitHub Desktop.
Contains JSON and Code to paste into code plugin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//JSON OXYGEN BUILDER | |
{"component":{"id":216,"name":"ct_div_block","options":{"ct_id":216,"ct_parent":100004,"selector":"div_block-216-53","original":{"padding-bottom":"0"},"nicename":"Wishlist Elements","activeselector":false},"depth":5,"children":[{"id":217,"name":"ct_code_block","options":{"ct_id":217,"ct_parent":216,"selector":"code_block-217-53","nicename":"Code Wishlist Paste Global","activeselector":false,"original":{"code-php":"<script>\n\ndocument.addEventListener('DOMContentLoaded', function() {\n if (window.angular) return;\n assignButtonEvents();\n\n function assignButtonEvents() {\n const wishlistButtons = document.querySelectorAll('.oxy-add-to-wishlist, .oxy-remove-from-wishlist');\n\n wishlistButtons.forEach(button => {\n button.removeEventListener('click', handleWishlistButtonClick);\n button.addEventListener('click', handleWishlistButtonClick);\n });\n }\n\n function handleWishlistButtonClick(event) {\n const button = event.currentTarget;\n const productId = button.dataset.productId;\n const action = button.classList.contains('oxy-add-to-wishlist') ? 'add' : 'remove';\n\n const wishlistContainers = document.querySelectorAll('.oxy-wishlist');\n wishlistContainers.forEach(container => {\n if (container.dataset.productId === productId) {\n container.classList.add('loading');\n }\n });\n\n updateWishlist(productId, action);\n }\n\n function updateWishlist(productId, action) {\n const userId = <?php echo json_encode(get_current_user_id()); ?>;\n const wishlistContainers = document.querySelectorAll('.oxy-wishlist');\n\n fetch('<?php echo esc_url_raw(rest_url() . 'wp/v2/wishlist'); ?>', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-WP-Nonce': '<?php echo wp_create_nonce('wp_rest'); ?>'\n },\n body: JSON.stringify({\n user_id: userId,\n product_id: productId,\n action: action\n })\n })\n .then(response => response.json())\n .then(data => {\n wishlistContainers.forEach(container => {\n if (container.dataset.productId === productId) {\n if (data.success) {\n if (action === 'add') {\n container.classList.add('add-to-list');\n container.classList.remove('remove-to-list');\n } else if (action === 'remove') {\n container.classList.remove('add-to-list');\n container.classList.add('remove-to-list');\n }\n } else {\n // Handle the error case if needed\n }\n }\n });\n\n updateWishlistCart(productId); // Pass productId to remove 'loading' class after updating the cart\n\n })\n .catch(error => {\n console.error('Error:', error);\n\n wishlistContainers.forEach(container => {\n if (container.dataset.productId === productId) {\n container.classList.remove('loading'); // Remove 'loading' class in case of error\n }\n });\n });\n }\n\n function updateWishlistCart(productId) {\n const wishlistCartDivs = jQuery('.oxy-wishlist-cart');\n\n wishlistCartDivs.each(function() {\n const cartId = jQuery(this).data('cart');\n jQuery.ajax({\n url: location.href,\n success: function(data) {\n const newContent = jQuery(data).find(\".oxy-wishlist-cart[data-cart='\" + cartId + \"']\").html();\n jQuery(\".oxy-wishlist-cart[data-cart='\" + cartId + \"']\").html(newContent);\n assignButtonEvents();\n\n if (typeof oxy_load_wishlist === 'function') {\n\t\t\t oxy_load_wishlist();\n\t \t}\n \n // Remove 'loading' class after updating the wishlist cart\n const wishlistContainers = document.querySelectorAll('.oxy-wishlist');\n wishlistContainers.forEach(container => {\n if (container.dataset.productId === productId) {\n container.classList.remove('loading');\n }\n });\n }\n });\n });\n }\n});\n\n \n</script>","code-js":"","code-css":".loading .oxy-wishlist-loading {\n display: flex !important;\n}\n\n.oxy-wishlist-loading {\n animation: rotate-animation 1.5s infinite linear;\n}\n\n@keyframes rotate-animation {\n\t0% {\n\t\ttransform: rotate(0deg);\n }\n 50% {\n\t\ttransform: rotate(180deg);\n\t}\n\t100% {\n\t\ttransform: rotate(360deg);\n\t}\n}\n\n.ct-component .oxy-wishlist-loading {\n position: relative;\n display: flex;\n}"}},"depth":6},{"id":218,"name":"ct_div_block","options":{"ct_id":218,"ct_parent":216,"selector":"div_block-218-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"},{"name":"data-cart","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}]},"nicename":"Wishlist Wrap","classes":["oxy-wishlist","oxy-wishlist-cart","oxy-wishlist-wrap"]},"depth":6,"children":[{"id":219,"name":"ct_div_block","options":{"ct_id":219,"ct_parent":218,"selector":"div_block-219-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}],"globalconditions":[{"name":"ZZOXYVSBDYNAMIC","operator":0,"value":"false","oxycode":"[oxygen ct_sign_sha256='8ff3d9c145fc89c78aae2c7293c52db1980a9d5576047dd3c28db5c65d9ad701' data='phpfunction' function='if_wishlist_true' ]"}]},"nicename":"Wishlist Add","classes":["oxy-add-to-wishlist","oxy-wishlist-btn","oxy-wishlist-add"]},"depth":7,"children":[{"id":220,"name":"ct_fancy_icon","options":{"ct_id":220,"ct_parent":219,"selector":"fancy_icon-220-53","original":{"icon-id":"Iconsicon-heart"},"nicename":"Icon (#1070)","classes":["oxy-wishlist-icon"]},"depth":8}]},{"id":221,"name":"ct_div_block","options":{"ct_id":221,"ct_parent":218,"selector":"div_block-221-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}],"globalconditions":[{"name":"ZZOXYVSBDYNAMIC","operator":0,"value":"true","oxycode":"[oxygen ct_sign_sha256='8ff3d9c145fc89c78aae2c7293c52db1980a9d5576047dd3c28db5c65d9ad701' data='phpfunction' function='if_wishlist_true' ]"}]},"nicename":"Wishlist Remove","classes":["oxy-remove-from-wishlist","oxy-wishlist-btn","oxy-wishlist-remove"]},"depth":7,"children":[{"id":222,"name":"ct_fancy_icon","options":{"ct_id":222,"ct_parent":221,"selector":"fancy_icon-222-53","original":{"icon-id":"Iconsicon-heart"},"nicename":"Icon (#1071)","classes":["oxy-wishlist-icon","oxy-wishlist-icon-remove"]},"depth":8}]},{"id":223,"name":"ct_div_block","options":{"ct_id":223,"ct_parent":218,"selector":"div_block-223-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}]},"nicename":"Wishlist Loading","classes":["oxy-add-to-wishlist","oxy-wishlist-btn","oxy-wishlist-loading"]},"depth":7,"children":[{"id":224,"name":"ct_fancy_icon","options":{"ct_id":224,"ct_parent":223,"selector":"fancy_icon-224-53","original":{"icon-id":"Iconsicon-loader"},"nicename":"Icon (#1070)","classes":["oxy-wishlist-icon","oxy-wishlist-icon-loading"]},"depth":8}]}]},{"id":225,"name":"ct_div_block","options":{"ct_id":225,"ct_parent":216,"selector":"div_block-225-53","original":{"custom-attributes":[{"name":"data-cart","value":"a01"}]},"nicename":"List","classes":["oxy-wishlist-cart","oxy-wishlist-list"]},"depth":6,"children":[{"id":226,"name":"ct_div_block","options":{"ct_id":226,"ct_parent":225,"selector":"div_block-226-53","original":{},"nicename":"Icon List","classes":["oxy-wishlist-list-icon-wrap"]},"depth":7,"children":[{"id":227,"name":"ct_text_block","options":{"ct_id":227,"ct_parent":226,"selector":"text_block-227-53","original":{},"nicename":"Count","ct_content":"<span id=\"ct-placeholder-228\"></span>","classes":["oxy-wishlist-list-count"]},"depth":8,"children":[{"id":228,"name":"ct_span","options":{"ct_id":228,"ct_parent":227,"selector":"span-228-53","original":{},"nicename":"Span (#1185)","ct_content":"[oxygen data='phpfunction' function='oxy_count_wishlist']"},"depth":9}]},{"id":229,"name":"ct_fancy_icon","options":{"ct_id":229,"ct_parent":226,"selector":"fancy_icon-229-53","original":{"icon-id":"Iconsicon-heart"},"nicename":"Icon (#1193)","classes":["oxy-wishlist-list-icon"]},"depth":8}]}]},{"id":230,"name":"ct_div_block","options":{"ct_id":230,"ct_parent":216,"selector":"div_block-230-53","original":{"custom-attributes":[{"name":"data-cart","value":"a02"}]},"nicename":"Compare Section","classes":["oxy-wishlist-loop","oxy-wishlist-cart"]},"depth":6,"children":[{"id":231,"name":"oxy_dynamic_list","options":{"ct_id":231,"ct_parent":230,"selector":"_dynamic_list-231-53","original":{"wp_query":"advanced","wp_query_advanced_preset":"Custom Settings","wp_query_advanced":[{"key":"post_type","values":[{"value":"product"}]},{"key":"post__in","values":[{"value":"[oxygen data=\"phpfunction\" function=\"call_ids_wishlist\" arguments=\",\"]"}]}]},"nicename":"Repeater (#1195)"},"depth":7,"children":[{"id":232,"name":"ct_div_block","options":{"ct_id":232,"ct_parent":231,"selector":"div_block-232-53","original":{"padding-top":"20","padding-right":"20","padding-bottom":"20","padding-left":"20","border-bottom-width":"1","border-bottom-style":"solid","border-bottom-color":"rgba(0,0,0,0.09)","flex-direction":"row","display":"flex","justify-content":"space-between","text-align":"right"},"nicename":"Div (#1196)"},"depth":8,"children":[{"id":233,"name":"ct_image","options":{"ct_id":233,"ct_parent":232,"selector":"image-233-53","original":{"image_type":"2","attachment_size":"full","attachment_id":"[oxygen data='featured_image_id']","attachment_height":768,"attachment_width":768,"attachment_url":"http://shop1.local/wp-content/uploads/2024/06/shop-img-49-768x768-1.jpg","width":"100"},"nicename":"Image (#1201)"},"depth":9},{"id":234,"name":"ct_div_block","options":{"ct_id":234,"ct_parent":232,"selector":"div_block-234-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"},{"name":"data-cart","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}]},"nicename":"Wishlist Wrap","classes":["oxy-wishlist","oxy-wishlist-cart","oxy-wishlist-wrap"]},"depth":9,"children":[{"id":235,"name":"ct_div_block","options":{"ct_id":235,"ct_parent":234,"selector":"div_block-235-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}],"globalconditions":[{"name":"ZZOXYVSBDYNAMIC","operator":0,"value":"false","oxycode":"[oxygen ct_sign_sha256='8ff3d9c145fc89c78aae2c7293c52db1980a9d5576047dd3c28db5c65d9ad701' data='phpfunction' function='if_wishlist_true' ]"}]},"nicename":"Wishlist Add","classes":["oxy-add-to-wishlist","oxy-wishlist-btn","oxy-wishlist-add"]},"depth":10,"children":[{"id":236,"name":"ct_fancy_icon","options":{"ct_id":236,"ct_parent":235,"selector":"fancy_icon-236-53","original":{"icon-id":"Iconsicon-heart"},"nicename":"Icon (#1070)","classes":["oxy-wishlist-icon"]},"depth":11}]},{"id":237,"name":"ct_div_block","options":{"ct_id":237,"ct_parent":234,"selector":"div_block-237-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}],"globalconditions":[{"name":"ZZOXYVSBDYNAMIC","operator":0,"value":"true","oxycode":"[oxygen ct_sign_sha256='8ff3d9c145fc89c78aae2c7293c52db1980a9d5576047dd3c28db5c65d9ad701' data='phpfunction' function='if_wishlist_true' ]"}]},"nicename":"Wishlist Remove","classes":["oxy-remove-from-wishlist","oxy-wishlist-btn","oxy-wishlist-remove"]},"depth":10,"children":[{"id":238,"name":"ct_fancy_icon","options":{"ct_id":238,"ct_parent":237,"selector":"fancy_icon-238-53","original":{"icon-id":"Iconsicon-heart"},"nicename":"Icon (#1071)","classes":["oxy-wishlist-icon","oxy-wishlist-icon-remove"]},"depth":11}]},{"id":239,"name":"ct_div_block","options":{"ct_id":239,"ct_parent":234,"selector":"div_block-239-53","original":{"custom-attributes":[{"name":"data-product-id","value":"[oxygen ct_sign_sha256='e50d3d5d2abffa995d621f2180036c2dcda6d6c1ebc6663fe44dd116cf983dee' data='phpfunction' function='get_the_ID' ]"}]},"nicename":"Wishlist Loading","classes":["oxy-add-to-wishlist","oxy-wishlist-btn","oxy-wishlist-loading"]},"depth":10,"children":[{"id":240,"name":"ct_fancy_icon","options":{"ct_id":240,"ct_parent":239,"selector":"fancy_icon-240-53","original":{"icon-id":"Iconsicon-loader"},"nicename":"Icon (#1070)","classes":["oxy-wishlist-icon","oxy-wishlist-icon-loading"]},"depth":11}]}]}]}]}]}]},"classes":{"oxy-wishlist":{"key":"oxy-wishlist","original":{"selector-locked":"true"}},"oxy-wishlist-cart":{"key":"oxy-wishlist-cart","original":{"selector-locked":"true"}},"oxy-wishlist-wrap":{"key":"oxy-wishlist-wrap","original":{"position":"relative"}},"oxy-add-to-wishlist":{"key":"oxy-add-to-wishlist","original":{"selector-locked":"true"}},"oxy-wishlist-btn":{"key":"oxy-wishlist-btn","original":{"flex-direction":"column","display":"flex","align-items":"center","justify-content":"center","width":"40","height":"40","border-radius":"1000","background-color":"#ffffff","border-top-style":"solid","border-right-style":"solid","border-bottom-style":"solid","border-left-style":"solid","border-all-style":"solid","border-top-width":"1","border-right-width":"1","border-bottom-width":"1","border-left-width":"1","border-all-width":"1","border-top-color":"rgba(0,0,0,0.09)","border-right-color":"rgba(0,0,0,0.09)","border-bottom-color":"rgba(0,0,0,0.09)","border-left-color":"rgba(0,0,0,0.09)","border-all-color":"rgba(0,0,0,0.09)","custom-css":"cursor: pointer;"}},"oxy-wishlist-add":{"key":"oxy-wishlist-add","original":{}},"oxy-wishlist-icon":{"key":"oxy-wishlist-icon","original":{"icon-color":"#1d3daf","icon-size":"20"}},"oxy-remove-from-wishlist":{"key":"oxy-remove-from-wishlist","original":{"selector-locked":"true"}},"oxy-wishlist-remove":{"key":"oxy-wishlist-remove","original":{"background-color":"#1d3daf"}},"oxy-wishlist-icon-remove":{"key":"oxy-wishlist-icon-remove","original":{"icon-color":"#ffffff","icon-size":"20"}},"oxy-wishlist-loading":{"key":"oxy-wishlist-loading","original":{"display":"none","background-color":"#1d3daf","position":"absolute"}},"oxy-wishlist-icon-loading":{"key":"oxy-wishlist-icon-loading","original":{"icon-color":"#f8f8f8","icon-size":"20"}},"oxy-wishlist-list":{"key":"oxy-wishlist-list","original":{"selector-locked":"false"}},"oxy-wishlist-list-icon-wrap":{"key":"oxy-wishlist-list-icon-wrap","original":{"position":"relative","width":"35","height":"35","flex-direction":"column","display":"flex","align-items":"center","justify-content":"center","border-radius":"1000","background-color":"#f8f8f8"}},"oxy-wishlist-list-count":{"key":"oxy-wishlist-list-count","original":{"position":"absolute","top":"-3","right":"-7","line-height":"1","width":"20","height":"20","display":"flex","align-items":"center","justify-content":"center","min-height":"20","min-width":"20","border-radius":"100","font-size":"12","background-color":"#1d3daf","color":"#ffffff"}},"oxy-wishlist-list-icon":{"key":"oxy-wishlist-list-icon","original":{"icon-size":"20","icon-color":"#1d3daf"}},"oxy-wishlist-loop":{"key":"oxy-wishlist-loop","original":{"width-unit":"%","width":"100"}}}} | |
//Paste Code | |
function oxy_count_wishlist() { | |
// Obtenemos el ID del usuario actual | |
$user_id = get_current_user_id(); | |
// Verificamos si el usuario está conectado | |
if (!$user_id) { | |
return 0; // Si no hay usuario conectado, retornamos 0 | |
} | |
// Obtenemos los valores de la meta key 'oxy-wishlist' del usuario actual | |
$wishlist = get_user_meta($user_id, 'oxy-wishlist', true); | |
// Verificamos si hay valores en la lista de deseos | |
if (empty($wishlist)) { | |
return 0; // Si no hay valores, retornamos 0 | |
} | |
// Convertimos la cadena separada por comas en un array y contamos los elementos | |
$wishlist_items = explode(',', $wishlist); | |
$count = count($wishlist_items); | |
return $count; | |
} | |
function call_ids_wishlist() { | |
$user_id = get_current_user_id(); | |
if ( $user_id ) { | |
$wishlist_ids = get_user_meta( $user_id, 'oxy-wishlist', true ); | |
return $wishlist_ids ? $wishlist_ids : null; | |
} | |
return null; | |
} | |
function if_wishlist_true() { | |
$user_id = get_current_user_id(); | |
$post_id = get_the_ID(); | |
if ( $user_id && $post_id ) { | |
$wishlist_ids_csv = get_user_meta( $user_id, 'oxy-wishlist', true ); | |
$wishlist_ids = ! empty( $wishlist_ids_csv ) ? explode( ',', $wishlist_ids_csv ) : array(); | |
if ( in_array( $post_id, $wishlist_ids ) ) { | |
return "true"; | |
} | |
} | |
return "false"; | |
} | |
function register_wishlist_endpoint() { | |
register_rest_route('wp/v2', '/wishlist', array( | |
'methods' => 'POST', | |
'callback' => 'update_wishlist', | |
'permission_callback' => function () { | |
return is_user_logged_in(); | |
}, | |
)); | |
} | |
add_action('rest_api_init', 'register_wishlist_endpoint'); | |
function update_wishlist($request) { | |
$user_id = absint($request->get_param('user_id')); | |
$product_id = absint($request->get_param('product_id')); | |
$action = sanitize_text_field($request->get_param('action')); | |
if (!$user_id || !$product_id || !in_array($action, ['add', 'remove'])) { | |
return rest_ensure_response(array('success' => false, 'message' => 'Datos inválidos')); | |
} | |
$wishlist = get_user_meta($user_id, 'oxy-wishlist', true); | |
$wishlist_array = $wishlist ? explode(',', $wishlist) : array(); | |
if ($action === 'add') { | |
if (!in_array($product_id, $wishlist_array)) { | |
$wishlist_array[] = $product_id; | |
} | |
} elseif ($action === 'remove') { | |
$key = array_search($product_id, $wishlist_array); | |
if ($key !== false) { | |
unset($wishlist_array[$key]); | |
} | |
} | |
$wishlist = implode(',', $wishlist_array); | |
update_user_meta($user_id, 'oxy-wishlist', $wishlist); | |
return rest_ensure_response(array('success' => true)); | |
} | |
/* //Uncomment and save to remove the Wishlist meta key | |
add_action('reset_oxy_wishlist_action', 'reset_oxy_wishlist'); | |
function reset_oxy_wishlist() { | |
$users = get_users(); | |
foreach ($users as $user) { | |
delete_user_meta($user->ID, 'oxy-wishlist'); | |
} | |
} | |
do_action('reset_oxy_wishlist_action'); | |
echo reset_oxy_wishlist(); | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment