• Varun Sridharan's avatar
    WooCommerce Quick Donation 1.3.x Beta Version · 9c660c91
    Varun Sridharan authored
    Redeveloping The Plugin.
    Created Custom Post Type
    Created Custom Taxonomy {Category & Tags}
    Created Short code
    Project Output Like Select , Radio [Single or grouped]
    Price Box Output
    Customization Template
    
    [admin/class-admin-init.php]
    
    Added woocommerce_screen_ids
    Removed Admin Notice Handler Class Init
    Added Plugins Settings Page ID To WC Screen ID
    
    [admin/class-admin-settings.php & admin/class-donation-settings.php]
    
    Working To Get A Prefect Settings Page
    
    [admin/includes/class-admin-functions.php]
    
    Changed WC_QD()->donation_id to WC_QD_ID
    
    [includes/class-quick-donation-process.php]
    
    Created Class To Process Front End Donation Form
    
    [includes/class-shortcode-handler.php]
    
    Created 2 Actions
    wc_quick_donation_before_donation_form
    wc_quick_donation_after_donation_form
    
    [woocommerce-quick-donation.php]
    
    Changed $donation_id from dynimic to static
    Added WC_QD_ID defined variable
    
    Rearranged Few Loading Files
    
    Added Donation Processing Email
    Added Prefect Settings Framework
    Added Seperate Page For Listing Donations
    9c660c91
taxonomy-advanced.php 2.22 KB
<?php
// Prevent loading this file directly
defined( 'ABSPATH' ) || exit;
require_once WCQD_METABOX_FIELDS_DIR . 'taxonomy.php';

if ( ! class_exists( 'WCQD_METABOX_Taxonomy_Advanced_Field' ) )
{
	class WCQD_METABOX_Taxonomy_Advanced_Field extends WCQD_METABOX_Taxonomy_Field
	{
		/**
		 * Get meta values to save
		 * Save terms in custom field, no more by setting post terms
		 * Save in form of comma-separated IDs
		 *
		 * @param mixed $new
		 * @param mixed $old
		 * @param int   $post_id
		 * @param array $field
		 *
		 * @return string
		 */
		static function value( $new, $old, $post_id, $field )
		{
			return implode( ',', array_unique( $new ) );
		}

		/**
		 * Save meta value
		 *
		 * @param mixed $new
		 * @param mixed $old
		 * @param int   $post_id
		 * @param array $field
		 *
		 * @return string
		 */
		static function save( $new, $old, $post_id, $field )
		{
			if ( $new )
				update_post_meta( $post_id, $field['id'], $new );
			else
				delete_post_meta( $post_id, $field['id'] );
		}

		/**
		 * Standard meta retrieval
		 *
		 * @param int   $post_id
		 * @param bool  $saved
		 * @param array $field
		 *
		 * @return array
		 */
		static function meta( $post_id, $saved, $field )
		{
			$meta = get_post_meta( $post_id, $field['id'], true );
			$meta = array_map( 'intval', array_filter( explode( ',', $meta . ',' ) ) );

			return $meta;
		}

		/**
		 * Get the field value
		 * Return list of post term objects
		 *
		 * @param  array    $field   Field parameters
		 * @param  array    $args    Additional arguments. Rarely used. See specific fields for details
		 * @param  int|null $post_id Post ID. null for current post. Optional.
		 *
		 * @return array List of post term objects
		 */
		static function get_value( $field, $args = array(), $post_id = null )
		{
			if ( ! $post_id )
				$post_id = get_the_ID();

			$value = self::meta( $post_id, '', $field );

			// Allow to pass more arguments to "get_terms"
			$args  = wp_parse_args( array(
				'include'    => $value,
				'hide_empty' => false,
			), $args );
			$value = get_terms( $field['options']['taxonomy'], $args );

			// Get single value if necessary
			if ( ! $field['clone'] && ! $field['multiple'] )
			{
				$value = reset( $value );
			}
			return $value;
		}
	}
}