geno/wp-content/plugins/ti-woocommerce-wishlist/integrations/vad-product-design.php
2024-02-01 11:54:18 +00:00

200 lines
5.4 KiB
PHP

<?php
/**
* TI WooCommerce Wishlist integration with:
*
* @name VAD Product Design
*
* @version 1.6.3
*
* @slug vad-product-design
*
* @url http://www.virtualartdevelopers.com
*
*/
// If this file is called directly, abort.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
// Load integration depends on current settings.
global $tinvwl_integrations;
$slug = "vad-product-design";
$name = "VAD Product Design";
$available = class_exists( 'VAD_Product_Design' );
$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( 'tinv_wishlist_item_meta_vad_product_design' ) ) {
/**
* Set description for meta VAD Product Design
*
* @param array $item_data Meta array.
* @param int $product_id Wishlist Product.
* @param int $variation_id Woocommerce Product.
*
* @return array
*/
function tinv_wishlist_item_meta_vad_product_design( $item_data, $product_id, $variation_id ) {
if ( class_exists( 'VAD_Product_Design' ) ) {
$product = wc_get_product( $product_id );
if ( $product && 'design' === $product->get_type() ) {
if ( isset( $item_data['select_variation_id'] ) ) {
$_product = wc_get_product( $item_data['select_variation_id']['display'] );
if ( $_product ) {
$name = $_product->get_name();
}
} else {
$name = $product->get_name();
}
if ( isset( $item_data['select_product_id'] ) ) {
$item_data[] = array(
'key' => __( 'Product', 'vad-product-design' ),
'display' => $name,
);
}
foreach ( array_keys( $item_data ) as $key ) {
if ( strpos( $key, 'select_' ) === 0 ) {
unset( $item_data[ $key ] );
}
}
}
}
return $item_data;
}
add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_vad_product_design', 10, 3 );
} // End if().
add_filter( 'tinvwl_wishlist_item_thumbnail', 'tinvwl_wishlist_item_thumbnail_vad_product_design', 10, 3 );
function tinvwl_wishlist_item_thumbnail_vad_product_design( $image, $wl_product, $product ) {
if ( class_exists( 'VAD_Product_Design' ) ) {
if ( $product && 'design' === $product->get_type() ) {
if ( isset( $wl_product['meta']['select_product_ima'] ) ) {
return '<img src="' . $wl_product['meta']['select_product_ima'] . '" alt="' . esc_attr( $product->get_name() ) . '" />';
}
}
}
return $image;
}
if ( ! function_exists( 'tinvwl_item_price_vad_product_design' ) ) {
/**
* Modify price for VAD Product Design.
*
* @param string $price Returned price.
* @param array $wl_product Wishlist Product.
* @param WC_Product $product Woocommerce Product.
*
* @return string
*/
function tinvwl_item_price_vad_product_design( $price, $wl_product, $product, $raw ) {
// echo '<pre><code>' . print_r( $wl_product, true ) . '</code></pre>';
if ( class_exists( 'VAD_Product_Design' ) ) {
if ( $product && 'design' === $product->get_type() && isset( $wl_product['meta']['select_product_price'] ) ) {
return wc_price( $wl_product['meta']['select_product_price'] );
}
}
return $price;
}
add_filter( 'tinvwl_wishlist_item_price', 'tinvwl_item_price_vad_product_design', 10, 4 );
} // End if().
add_filter( 'woocommerce_add_cart_item_data', 'woocommerce_add_cart_item_data_vad_product_design', 10, 3 );
function woocommerce_add_cart_item_data_vad_product_design( $cart_item_data, $product_id, $variation_id ) {
$product = wc_get_product( $product_id );
if ( $product->get_type() === 'design' ) {
if ( isset( $cart_item_data['select_product_id'] ) ) {
$cart_item_data['select-product-id'] = $cart_item_data['select_product_id'];
}
if ( isset( $cart_item_data['select_variation_id'] ) ) {
$cart_item_data['select-variation-id'] = $cart_item_data['select_variation_id'];
}
if ( isset( $cart_item_data['select_product_name'] ) ) {
$cart_item_data['select-product-name'] = $cart_item_data['select_product_name'];
}
if ( isset( $cart_item_data['select_product_sku'] ) ) {
$cart_item_data['select-product-sku'] = $cart_item_data['select_product_sku'];
}
if ( isset( $cart_item_data['select_product_ima'] ) ) {
$cart_item_data['select-product-ima'] = $cart_item_data['select_product_ima'];
}
}
return $cart_item_data;
}
add_filter( 'tinvwl_addtowishlist_prepare_form_cart', 'tinvwl_addtowishlist_prepare_form_cart_vad_product_design', 10, 4 );
function tinvwl_addtowishlist_prepare_form_cart_vad_product_design( $data, $cart_item_key, $cart_items, $product ) {
if ( $product->get_type() === 'design' ) {
$data = array();
foreach ( $cart_items[ $cart_item_key ] as $key => $value ) {
if ( strpos( $key, 'select-' ) === 0 && 'select-product-sku' !== $key ) {
$data[ str_replace( '-', '_', $key ) ] = wp_strip_all_tags( $value );
}
}
}
return $data;
}
add_filter( 'tinvwl_addtowishlist_prepare_form', 'tinvwl_meta_vad_product_design', 10, 3 );
function tinvwl_meta_vad_product_design( $meta, $post, $files ) {
$product = wc_get_product( $post['product_id'] );
if ( $product && $product->get_type() === 'design' ) {
if ( isset( $meta['select_product_price'] ) && $meta['select_product_price'] == $product->get_price() ) {
unset( $meta['select_product_price'] );
}
foreach ( array_keys( $meta ) as $key ) {
if ( strpos( $key, 'attribute_' ) === 0 ) {
unset( $meta[ $key ] );
}
}
}
return $meta;
}