MSV FM

dot.antimicrobial@66.96.161.157: ~ $
Path : /hermes/bosweb/b1705/yellowprint.ca/wp-content/plugins/displayProduct/include/
File Upload :
Current < : /hermes/bosweb/b1705/yellowprint.ca/wp-content/plugins/displayProduct/include/dp-field.php

<?php
if (!defined('ABSPATH'))
    die("Can't load this file directly");

/**********************************
 * Product name
 **********************************/
add_filter('dp_field_title','dp_field_title_cb',10,2);
function dp_field_title_cb($id,$type)
{   global $dp_title;
    if(!$id)
    {
        $id=  get_the_ID();
    }
    $result ='<h2 class="product-name">' . apply_filters('dp_link_detail',$id,get_the_title($id),$dp_title) . '</h2>';
    return $result;
}

/**********************************
 * Product Description
 **********************************/
add_filter('dp_field_content','dp_field_content_cb',10,2);
function dp_field_content_cb($id,$type)
{
    global $dp_content;
    if(!$id)
    {
        $id=  get_the_ID();
    }
    
    if($dp_content['lenght'])
    {
        $content=wp_trim_words( get_the_content($id), $dp_content['lenght'] );
    }
    else
    {
        $content= get_the_content($id);
    }
    
    return '<p class="dp-grid-content">' . apply_filters('dp_link_detail',$id,$content,$dp_content) . '</p>';

}

/**********************************
 * Product Short Description
 **********************************/
add_filter('dp_field_excerpt','dp_field_excerpt_cb',10,2);
function dp_field_excerpt_cb($id,$type)
{
    global $dp_excerpt;
    if(!$id)
    {
        $id=  get_the_ID();
    }
    
    if($dp_excerpt['lenght'])
    {
        $excerpt= dp_excerpt_max_charlength($dp_excerpt['lenght']);
    }
    else
    {
        $excerpt= get_the_excerpt($id);
    }
    return '<p class="dp-grid-excerpt">' . apply_filters('dp_link_detail',$id,$excerpt,$dp_excerpt) . '</p>';
}

/**********************************
 * Product price
 **********************************/
add_filter('dp_field_price','dp_field_price_cb',10,3);
function dp_field_price_cb($id,$type,$product_variation='')
{
    global $product,$dp_price;
    if(!$id)
    {
        $id=  get_the_ID();
    }
    if($product_variation){
        $price=$product_variation->price;
    }else{
        $price=$product->get_price_html();
    }
    return '<div class="dp-grid-price dp-price">' . apply_filters('dp_link_detail',$id,$price,$dp_price) . '</div>';
}

/**********************************
 * Product sku
 **********************************/
add_filter('dp_field_sku','dp_field_sku_cb',10,3);
function dp_field_sku_cb($id,$col,$product_variation='')
{
    global $product,$dp_sku;
    if(!$id)
    {
        $id=  get_the_ID();
    }
    if($product_variation){
        return '<div class="dp-sku">'.get_post_meta($id,'_sku',true).'</div>';
    }else{
        if ( $product->is_type( array( 'simple', 'variable' ) ) && $product->get_sku() ) :
            return '<div class="dp-sku_wrapper" itemprop="productID">'.__( 'SKU: ', DP_TEXTDOMAN).'<span class="dp-sku">'.apply_filters('dp_link_detail',$id,$product->get_sku(),$dp_sku).'</span></div>';
        endif;
    }
}

/**********************************
 * Product category
 **********************************/
add_filter('dp_field_category','dp_field_category_cb',10,2);
function dp_field_category_cb($id,$col)
{
    global $product;
    $post_ID=!empty($post->ID)?$post->ID:get_the_ID();
    $size = sizeof( get_the_terms( $post_ID, 'product_cat' ) );
    return $product->get_categories( ', ', '<div class="dp-category_wrapper posted_in">' . _n( 'Category: ', 'Categories: ', $size, DP_TEXTDOMAN) . '<span class="dp-category posted_in"> ', '</span></div>' );
}

/**********************************
 * Product tags
 **********************************/
add_filter('dp_field_tags','dp_field_tags_cb',10,2);
function dp_field_tags_cb($id,$col)
{
    global $product,$size;
    $size=!empty($size)?$size:3;
    return $product->get_tags( ', ', '<span class="tagged_as">' . _n( 'Tag: ', 'Tags: ', $size, DP_TEXTDOMAN) . ' ', '.</span>' );
}

/**********************************
 * Product stock stock label + qty
 **********************************/
add_filter('dp_field_stock','dp_field_stock_cb',10,2);
function dp_field_stock_cb($id,$col)
{
    global $product;
    $stock='';
    $stock .='<div class="dp-stock-label">';
    if (!$product->is_in_stock()) {
        $stock.= __( 'Out of stock', DP_TEXTDOMAN);
    }else{
        $stock.=__( 'In stock', DP_TEXTDOMAN);
    }
    $stock .='</div>';
    $stock .='<div class="dp-stock-qty_wrapper">'.__( 'Stock Qty : ', DP_TEXTDOMAN).'<span class="dp-stock-qty">'.$product->get_stock_quantity().__( ' Item(s)', DP_TEXTDOMAN).'</span></div>';
    return $stock;
}

/**********************************
 * Product stock label
 **********************************/
add_filter('dp_field_stock_status','dp_field_stock_status_cb',10,2);
function dp_field_stock_status_cb($id,$col)
{
    global $product;
    if (!$product->is_in_stock()) {
        $stock= __( 'Out of stock', DP_TEXTDOMAN);
    }else{
        $stock=__( 'In stock', DP_TEXTDOMAN);
    }
    return '<div itemprop="productID" class="dp-stock_label_wrapper">'.__( 'Stock : ', DP_TEXTDOMAN).'<span class="dp-stock-qty">'.$stock.'</span></div>';
}

/**********************************
 * Product stock qty
 **********************************/
add_filter('dp_field_stock_qty','dp_field_stock_qty_cb',10,2);
function dp_field_stock_qty_cb($id,$col)
{
    global $product;
    $dp_get_stock_quantity_var=$product->get_stock_quantity();
    if(!empty($dp_get_stock_quantity_var))
    {
        return '<div itemprop="productID" class="dp-stock_qty_wrapper">'.__( 'Stock: ', DP_TEXTDOMAN).'<span class="stk_qty dp-stk_qty">'.$product->get_stock_quantity().'</span></div>';
    }
}

/**********************************
 * Product Ship Weight
 **********************************/
add_filter('dp_field_weight','dp_field_weight_cb',10,2);
function dp_field_weight_cb($id,$col)
{
    global $product;
    $dp_weight_var=$product->__get('weight');
    if(!empty($dp_weight_var))
    {
        return '<div itemprop="productID" class="dp-dimension_weight_wrapper">'.__( 'Weight: ', DP_TEXTDOMAN).'<span class="sku dp-weight">'.$product->__get('weight').'</span></div>';
    }
}

/**********************************
 * Product Ship Dimension
 **********************************/
add_filter('dp_field_dimension','dp_field_dimension_cb',10,2);
function dp_field_dimension_cb($id,$col)
{
    global $product;
    $dp_lenght_var=$product->__get('length');
    $dp_width_var=$product->__get('width');
    $dp_height_var=$product->__get('height');
    if(!empty($dp_lenght_var)||!empty($dp_width_var)||!empty($dp_height_var) ){
        return '<div itemprop="productID" class="dp-dimension_wrapper">'.__( 'Dimension: ', DP_TEXTDOMAN).'<span class="dimension dp-dimension">'.implode("x", array($product->__get('length'),$product->__get('width'),$product->__get('height'))).'</span></div>';
    }
    
}

/**********************************
 * Product Ship Dimension length
 **********************************/
add_filter('dp_field_dimension_lenght','dp_field_dimension_lenght_cb',10,2);
function dp_field_dimension_lenght_cb($id,$col)
{
    global $product;
    $dp_lenght_var=$product->__get('length');
    if(!empty($dp_lenght_var))
    {
        return '<div itemprop="productID" class="dp-dimension_lenght_wrapper">'.__( 'Lenght: ', DP_TEXTDOMAN).'<span class="length dp-length">'.$product->__get('length').'</span></div>';
    }

}

/**********************************
 * Product Ship Dimension width
 **********************************/
add_filter('dp_field_dimension_width','dp_field_dimension_width_cb',10,2);
function dp_field_dimension_width_cb($id,$col)
{
    global $product;
    $dp_width_var=$product->__get('width');
    if(!empty($dp_width_var))
    {
        return '<div itemprop="productID" class="dp-dimension_width_wrapper">'.__( 'Width: ', DP_TEXTDOMAN).'<span class="width dp-width">'.$product->__get('width').'</span></div>';
    }

}

/**********************************
 * Product Ship Dimension height
 **********************************/
add_filter('dp_field_dimension_height','dp_field_dimension_height_cb',10,2);
function dp_field_dimension_height_cb($id,$col)
{
    global $product;
    $dp_height_var=$product->__get('height');
    if(!empty($dp_height_var))
    {
        return '<div itemprop="productID" class="dp-dimension_height_wrapper">'.__( 'Height: ', DP_TEXTDOMAN).'<span class="height dp-height">'.$product->__get('height').'</span></div>';
    }

}

/**********************************
 * Product Ship Class
 **********************************/
add_filter('dp_field_shipping_class','dp_field_shipping_class_cb',10,2);
function dp_field_shipping_class_cb($id,$col)
{
    global $product;
    return '<div itemprop="productID" class="dp-dimension_height_wrapper">'.$product->get_shipping_class().'</div>';
}

/**********************************
 * Product Attribute
 **********************************/
add_filter('dp_field_attribute','dp_field_attribute_cb',10,2);
function dp_field_attribute_cb($id,$col)
{
    global $product;
    return $product->get_attribute( $col['column_att_key'] );
}

/**********************************
 * Product date
 **********************************/
add_filter('dp_field_date','dp_field_date_cb',10,2);
function dp_field_date_cb($id,$col)
{
    global $product;
    $id=!empty($id)?$id:get_the_ID();
    return '<div itemprop="productID" class="dp-date_wrapper">'.get_the_date(get_option( 'date_format' ),$id).'</div>';
}

/**********************************
 * Product saleflash
 **********************************/
add_filter('dp_field_saleflash','dp_field_saleflash_cb',10,2);
function dp_field_saleflash_cb($id,$col)
{
    return dp_get_sale_flash();
}

/**********************************
 * Product Author
 **********************************/
add_filter('dp_field_author','dp_field_author_cb',10,2);
function dp_field_author_cb($id,$col)
{
    global $product;
    $author_id=$product->post_author;
    return '<div itemprop="productID" class="dp-author_wrapper">'.get_the_author_meta('nicename',$author_id).'</div>';
}

/**********************************
 * Product star
 **********************************/
add_filter('dp_field_star','dp_field_star_cb',10,2);
function dp_field_star_cb($id,$col)
{
    global $product;
    return '<div class="dp-grid-rating clearfix">' . $product->get_rating_html() . '</div>';
}

/**********************************
 * Product Feature Image
 **********************************/
add_filter('dp_field_image','dp_field_image_cb',10,2);
function dp_field_image_cb($id,$type)
{
    global $product,$dp_image,$quickview;
    $result='';
    $wrapperClass='';
    if($dp_image['type']=='link'){
        $url='href="'.get_permalink().'"';
    }elseif($dp_image['type']=='custom-link'){ 
        $url='href="'.$dp_image['custom_url'].'"';
    }else{
        $url='';
    }
    
    if($type=='list'){
        $wrapperClass="dp-col dp-list-thumb dp-col_1_of_5";
    }
    $result.='<div class="dp_images '.$wrapperClass.'">';
    $result.='<a ' . $url . ' title="' . get_the_title() . '" class="dp-product-image">';
    if (has_post_thumbnail()) {
        $result.=dp_get_image($dp_image);
        if($quickview == 'default'){
            $result.='<span class="dpquickview dp_quickview_button" data-id="'.  get_the_ID().'"><img src="'.DP_DIR.'/assets/images/quickview.png"></span>';
        }
    }else {
        $result.=wc_placeholder_img();
    }
    $result.='</a>';
    $result.='</div>';
    return $result;
}

/**********************************
 * Product Custom Field
 **********************************/
add_filter('dp_field_meta','dp_field_customField_cb',10,2);
function dp_field_customField_cb($id,$col)
{
    global $product,$dp_meta;
    $custom=get_post_meta($id,$dp_meta['meta_key'],true);
    switch ($dp_meta['type'])
    {
        case 'text' :
                $output= html_entity_decode($custom);
            break;
        case 'image' :
                $output='<img src="'.$custom.'" />';
            break;
        case 'shortcode' :
                $output=  do_shortcode($custom);
            break;
    }
    return $output;
}



/**********************************
 * Product Variable
 **********************************/
add_filter('dp_field_variable','dp_field_variable_cb',10,2);
function dp_field_variable_cb($id,$col)
{
    global $product;
    wp_reset_query();
    wp_reset_postdata();
    $main_variable_args = array(
        'post_type' => 'product_variation',
//        'meta_query' => array(
//            array(
//                'key' => 'attribute_pa_'.$attribute_arr[0],
//                'value' => $attribute_arr[1],
//            )
//        ),
        'post_parent'=>$id
    );
        
    foreach ($col['column_attr_variable_val'] as $variable_val){
        $attribute_arr=explode('|',$variable_val ); //tax|term
        $variable_args = array(
            array(
                'key' => 'attribute_pa_'.$attribute_arr[0],
                'value' => $attribute_arr[1]
            )
        );
        $main_variable_args['meta_query'][] = $variable_args;   
    }
    $main_variable_args['meta_query'][]=array('relation' => 'AND');
    $query2 = new WP_Query( $main_variable_args );
    
    while ($query2->have_posts()) { $query2->the_post();
        $variable_id=  get_the_ID();
    }
    
    $product_variation = new WC_Product_Variation($variable_id); //41 = product_variation   / 40 = product
    $regular_price = apply_filters('dp_field_'.$col['column_product_variable_field'],$variable_id,$col,$product_variation); //$product_variation->regular_price;
  
    return $regular_price;
}


/**********************************
 * Product Link to Detail
 **********************************/
add_filter('dp_link_detail','dp_link_detail_cb',10,3);
function dp_link_detail_cb($id,$content,$options='')
{
    if($options["type"]=='link'){
       return '<a href="'.get_permalink($id).'" title="'.get_the_title($id).'" >'.$content.'</a>';
    }elseif($options["type"]=='custom-link'){
       return '<a href="'.$options["custom_url"].'" title="'.get_the_title($id).'" >'.$content.'</a>';
    }
    return $content;
}

/**********************************
 * Product Add to cart
 **********************************/
add_filter('dp_field_button','dp_field_button_cb',10,2);
function dp_field_button_cb($id,$col)
{
    global $product;

    if (!$product->is_in_stock()) :

        return '<a href="' . apply_filters('out_of_stock_add_to_cart_url', get_permalink($product->id)) . '" class="dp-button">' . apply_filters('out_of_stock_add_to_cart_text', __('Read More', DP_TEXTDOMAN)) . '</a>';

    else :
        $link = array(
            'url' => '',
            'label' => '',
            'class' => ''
        );

        $handler = apply_filters('woocommerce_add_to_cart_handler', $product->product_type, $product);

        switch ($handler) {
            case "variable" :
                $link['url'] = apply_filters('variable_add_to_cart_url', get_permalink($product->id));
                $link['label'] = apply_filters('variable_add_to_cart_text', __('Select options', DP_TEXTDOMAN));
                break;
            case "grouped" :
                $link['url'] = apply_filters('grouped_add_to_cart_url', get_permalink($product->id));
                $link['label'] = apply_filters('grouped_add_to_cart_text', __('View options', DP_TEXTDOMAN));
                break;
            case "external" :
                $link['url'] = apply_filters('external_add_to_cart_url', get_permalink($product->id));
                $link['label'] = $product->get_button_text();
                break;
            default :
                if ($product->is_purchasable()) {
                    $link['url'] = apply_filters('add_to_cart_url', esc_url($product->add_to_cart_url()));
                    $link['label'] = apply_filters('add_to_cart_text', __('Add to cart', DP_TEXTDOMAN));
                    $link['class'] = apply_filters('add_to_cart_class', 'add_to_cart_button');
                } else {
                    $link['url'] = apply_filters('not_purchasable_url', get_permalink($product->id));
                    $link['label'] = apply_filters('not_purchasable_text', __('Read More', DP_TEXTDOMAN));
                }
                break;
        }

        return apply_filters('woocommerce_loop_add_to_cart_link', sprintf('<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" class="%s dp-button product_type_%s">%s</a>', esc_url($link['url']), esc_attr($product->id), esc_attr($product->get_sku()), esc_attr($link['class']), esc_attr($product->product_type), esc_html($link['label'])), $product, $link);

    endif;
    return $content;
}
if(!function_exists('dp_add_to_cart_customButton')):
function dp_add_to_cart_customButton($addtocarturl,$addtocarttext) {
    if($addtocarttext==''){$addtocarttext='Add to Cart';}
    $customlink='<a href="'.$addtocarturl.'" class="single_add_to_cart_button button alt db_customButton">';
    $customlink_end='</a>';
    return $customlink.$addtocarttext.$customlink_end;
}
endif;

if(!function_exists('dp_add_to_cart_customText')):
function dp_add_to_cart_customText($addtocarturl,$addtocarttext) {
    if($addtocarturl){
        $customlink='<a href="'.$addtocarturl.'" class="db_customText">';
        $customlink_end='</a>';
    }
    if($addtocarttext==''){$addtocarttext='Call for Price';}
    return $customlink.'<div class="db_customtext">'.$addtocarttext.'</div>'.$customlink_end;
}
endif;

if(!function_exists('dp_add_to_cart_productdetail')):
function dp_add_to_cart_productdetail($addtocarturl,$addtocarttext) {
    if($addtocarttext==''){$addtocarttext='View Product';}
    $customlink='<a href="'.$addtocarturl.'" class="single_add_to_cart_button button alt db_customButton">';
    $customlink_end='</a>';
    return $customlink.$addtocarttext.$customlink_end;
}
endif;

?>