geno/wp-content/plugins/ti-woocommerce-wishlist/integrations/gift-cards-for-woocommerce.php
2024-02-01 11:54:18 +00:00

172 lines
4.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* TI WooCommerce Wishlist integration with:
*
* @name WooCommerce Gift Cards
*
* @version 2.6.5
*
* @slug gift-cards-for-woocommerce
*
* @url https://wordpress.org/plugins/gift-cards-for-woocommerce/
*
*/
// If this file is called directly, abort.
if (!defined('ABSPATH')) {
exit;
}
// Load integration depends on current settings.
global $tinvwl_integrations;
$slug = "gift-cards-for-woocommerce";
$name = "WooCommerce Gift Cards";
$available = class_exists('KODIAK_GIFTCARDS');
$tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : [];
$tinvwl_integrations[$slug] = array(
'name' => $name,
'available' => $available,
);
if (!tinv_get_option('integrations', $slug)) {
return;
}
if (!$available) {
return;
}
if (!function_exists('tinvwl_gift_card_add')) {
/**
* Support WooCommerce - Gift Cards
* Redirect to page gift card, if requires that customers enter a name and email when purchasing a Gift Card.
*
* @param boolean $redirect Default value to redirect.
* @param \WC_Product $product Product data.
*
* @return boolean
*/
function tinvwl_gift_card_add($redirect, $product)
{
if (class_exists('KODIAK_GIFTCARDS')) {
$is_required_field_giftcard = get_option('woocommerce_enable_giftcard_info_requirements');
if ('yes' == $is_required_field_giftcard) { // WPCS: loose comparison ok.
$is_giftcard = get_post_meta($product->get_id(), '_giftcard', true);
if ('yes' == $is_giftcard) { // WPCS: loose comparison ok.
return true;
}
}
}
return $redirect;
}
add_filter('tinvwl_product_add_to_cart_need_redirect', 'tinvwl_gift_card_add', 20, 2);
}
if (!function_exists('tinvwl_gift_card_add_url')) {
/**
* Support WooCommerce - Gift Cards
* Redirect to page gift card, if requires that customers enter a name and email when purchasing a Gift Card.
*
* @param string $redirect_url Default value to redirect.
* @param \WC_Product $product Product data.
*
* @return boolean
*/
function tinvwl_gift_card_add_url($redirect_url, $product)
{
if (class_exists('KODIAK_GIFTCARDS')) {
$is_required_field_giftcard = get_option('woocommerce_enable_giftcard_info_requirements');
if ('yes' == $is_required_field_giftcard) { // WPCS: loose comparison ok.
$is_giftcard = get_post_meta($product->get_id(), '_giftcard', true);
if ('yes' == $is_giftcard) { // WPCS: loose comparison ok.
return $product->get_permalink();
}
}
}
return $redirect_url;
}
add_filter('tinvwl_product_add_to_cart_redirect_url', 'tinvwl_gift_card_add_url', 20, 2);
}
if (!function_exists('tinv_wishlist_meta_support_rpgiftcards')) {
/**
* Set description for meta WooCommerce - Gift Cards
*
* @param array $meta Meta array.
*
* @return array
*/
function tinv_wishlist_metasupport_rpgiftcards($meta)
{
if (class_exists('KODIAK_GIFTCARDS')) {
foreach ($meta as $key => $data) {
switch ($data['key']) {
case 'rpgc_note':
$meta[$key]['key'] = __('Note', 'ti-woocommerce-wishlist');
break;
case 'rpgc_to':
$meta[$key]['key'] = (get_option('woocommerce_giftcard_to') <> null ? get_option('woocommerce_giftcard_to') : __('To', 'ti-woocommerce-wishlist')); // WPCS: loose comparison ok.
break;
case 'rpgc_to_email':
$meta[$key]['key'] = (get_option('woocommerce_giftcard_toEmail') <> null ? get_option('woocommerce_giftcard_toEmail') : __('To Email', 'ti-woocommerce-wishlist')); // WPCS: loose comparison ok.
break;
case 'rpgc_address':
$meta[$key]['key'] = (get_option('woocommerce_giftcard_address') <> null ? get_option('woocommerce_giftcard_address') : __('Address', 'ti-woocommerce-wishlist')); // WPCS: loose comparison ok.
break;
case 'rpgc_reload_card':
$meta[$key]['key'] = __('Reload existing Gift Card', 'ti-woocommerce-wishlist');
break;
case 'rpgc_description':
case 'rpgc_reload_check':
unset($meta[$key]);
break;
}
}
}
return $meta;
}
add_filter('tinvwl_wishlist_item_meta_post', 'tinv_wishlist_metasupport_rpgiftcards');
} // End if().
if (!function_exists('tinv_wishlist_metaprepare_rpgiftcards')) {
/**
* Prepare save meta for WooCommerce - Gift Cards
*
* @param array $meta Meta array.
*
* @return array
*/
function tinv_wishlist_metaprepare_rpgiftcards($meta)
{
if (class_exists('KODIAK_GIFTCARDS')) {
if (array_key_exists('rpgc_reload_check', $meta)) {
foreach (array('rpgc_note', 'rpgc_to', 'rpgc_to_email', 'rpgc_address') as $value) {
if (array_key_exists($value, $meta)) {
unset($meta[$value]);
}
}
}
}
return $meta;
}
add_filter('tinvwl_product_prepare_meta', 'tinv_wishlist_metaprepare_rpgiftcards');
}