shatner_label = get_option('shatner_label', "Name your own price"); add_action('wp_enqueue_scripts', function () { wp_enqueue_script('shatner', plugins_url('/shatner.js',__FILE__), array('jquery') ); }); if ( is_admin() ){ // admin actions $this->init_form_fields(); add_action( 'admin_menu', array($this, 'add_shatner_menu' )); add_action( 'admin_init', array($this, 'admin_init' )); add_action('woocommerce_before_calculate_totals', array($this, 'add_custom_price' )); add_action('woocommerce_product_options_pricing', array($this, 'add_donation_radio')); add_action('save_post', array($this, 'set_named_price')); } else { if(get_option('use_shatner_templates', 1 ) == 1) { add_filter('woocommerce_locate_template', array($this, 'template_override'),10,3); add_filter('woocommerce_loop_add_to_cart_link', array($this, 'remove_link'),10); } add_action('woocommerce_product_options_pricing', array($this, 'add_donation_radio')); add_action('save_post', array($this, 'set_named_price')); add_action('woocommerce_add_to_cart', array($this, 'add_to_cart_hook')); add_action('woocommerce_before_calculate_totals', array($this, 'add_custom_price' )); add_action('init', array($this, 'init_css')); } } public function remove_link($link) { global $post; $post = get_post_meta($post->ID, '_own_price', true); if ($post === 'yes') return ''; return $link; } public function add_shatner_menu() { add_options_page( 'Shatner Plugin Settings', 'Shatner Settings', 'manage_options', 'shatner_plugin', array($this, 'shatner_plugin_settings_page') ); } public function shatner_plugin_settings_page() { include(sprintf("%s/templates/settings.php", dirname(__FILE__))); } /** * hook into WP's admin_init action hook */ public function admin_init() { // add your settings section add_settings_section( 'wp_plugin_template-section_shatner', 'Shatner Plugin Template Settings', array($this, 'settings_section_shatner_plugin_template'), 'wp_plugin_template_shatner' ); foreach($this->form_fields as $setting) { // register your plugin's settings register_setting('wp_plugin_template-group-shatner', $setting['title']); // add your setting's fields add_settings_field( $setting['title'], $setting['description'], array(&$this, 'settings_field_input_'. $setting['type']), 'wp_plugin_template_shatner', 'wp_plugin_template-section_shatner', array( 'field' => $setting['title'] ) ); } } // END public static function activate public function init_form_fields() { $this->form_fields = array( array( 'type' => 'text', 'title' => esc_html__('shatner_label', 'woothemes'), 'description' => esc_html__('Shatner Label', 'woothemes'), 'default' => esc_html__('Name your own price', 'woothemes') ), array( 'type' => 'radio_button', 'title' => esc_html__('use_shatner_templates', 'woothemes'), 'description' => esc_html__('Shatner Templates override pricing, disable if you want to customize using your theme', 'woothemes'), 'default' => esc_html__('1', 'woothemes') ) ); } public function settings_section_shatner_plugin_template() { // Think of this as help text for the section. echo 'These settings set values for Shatner'; } /** * This function provides text inputs for settings fields */ public function settings_field_input_text($args) { // Get the field name from the $args array $field = $args['field']; // Get the value of this setting $value = get_option($field); // echo a proper input type="text" echo sprintf('', $field, $field, $value); } // END public function settings_field_input_text($args) /** * This function provides text inputs for settings fields */ public function settings_field_input_radio_button($args) { // Get the field name from the $args array $field = $args['field']; // Get the value of this setting $value = get_option($field); $html = ' '; $html .= '
'; $html .= ' '; $html .= ' '; echo $html; } // END public function settings_field_input_radio($args) public function template_override($template, $template_name, $template_path ) { // Modification: Get the template from this plugin, if it exists $plugin_path = untrailingslashit( plugin_dir_path( __FILE__ ) ). '/templates/'; if ( file_exists( $plugin_path . $template_name ) ) { $template = $plugin_path . $template_name; return $template; } return $template; } public function init_css() { wp_register_style('donation_css', plugins_url('custom_styles.css',__FILE__ ), false, '1.0.1', 'all'); wp_enqueue_style( 'donation_css' ); } public function add_to_cart_hook($key) { global $woocommerce; foreach ($woocommerce->cart->get_cart() as $cart_item_key => $values) { if(!get_post_meta($values['product_id'], '_own_price', true ) || get_post_meta($values['product_id'], '_own_price', true ) === 'no') { $values['data']->set_price($_POST['price']); continue; } $thousands_sep = wp_specialchars_decode( stripslashes( get_option( 'woocommerce_price_thousand_sep' ) ), ENT_QUOTES ); $decimal_sep = stripslashes( get_option( 'woocommerce_price_decimal_sep' ) ); $_POST['price'] = str_replace($thousands_sep, '', $_POST['price']); $_POST['price'] = str_replace($decimal_sep, '.', $_POST['price']); $_POST['price'] = wc_format_decimal($_POST['price']); if($cart_item_key == $key) { $values['data']->set_price($_POST['price']); $woocommerce->session->__set($key .'_named_price', $_POST['price']); } } return $key; } public function set_named_price($post) { if(isset($_POST['_own_price'])){ if(!get_post_meta($_POST['post_ID'], '_own_price', true )){ add_post_meta($_POST['post_ID'], '_own_price', $_POST['_own_price']); } else { update_post_meta($_POST['post_ID'], '_own_price', $_POST['_own_price']); } } if(isset($_POST['_own_price_enforce_minimum'])){ if(!get_post_meta($_POST['post_ID'], '_own_price_enforce_minimum', true )){ add_post_meta($_POST['post_ID'], '_own_price_enforce_minimum', $_POST['_own_price_enforce_minimum']); } else { update_post_meta($_POST['post_ID'], '_own_price_enforce_minimum', $_POST['_own_price_enforce_minimum']); } } } public function add_donation_radio($content) { global $post; woocommerce_wp_radio(array( 'id' => '_own_price', 'class' => 'wc_own_price short', 'label' => esc_html__( 'Name your own price', 'woocommerce' ), 'options' => array( 'yes' => 'Yes', 'no' => 'No', ) ) ); woocommerce_wp_radio(array( 'id' => '_own_price_enforce_minimum', 'class' => 'wc_own_price_e short', 'label' => esc_html__( 'Enforce "Regular price" as the minimum price', 'woocommerce' ), 'options' => array( 'yes' => 'Yes', 'no' => 'No', ) ) ); } public function add_custom_price( $cart_object ) { global $woocommerce; foreach ( $cart_object->cart_contents as $key => $value ) { if(!get_post_meta($value['product_id'], '_own_price', true ) || get_post_meta($value['product_id'], '_own_price', true ) === 'no') { continue; } $named_price = $woocommerce->session->__get($key .'_named_price'); if($named_price) { $product = $value['data']; $product->set_price( $named_price ); } } } } new SV_WC_Donation(); World Wildlife Fund | REACH Foundation

REACH Foundation

  • Home
  • Features
    • Calendar
    • Video Hero
    • Image Hero
    • No Sidebar
    • Right Sidebar
    • Left Sidebar
  • Blog
  • Sponsors
  • Staff
  • Donate
  • Buy Grassroots

World Wildlife Fund

Mission and Vision

WWF’s mission is to conserve nature and reduce the most pressing threats to the diversity of life on Earth.

Our vision is to build a future in which people live in harmony with nature.

A Brighter Future

We seek to save a planet, a world of life. Reconciling the needs of human beings and the needs of others that share the Earth, we seek to practice conservation that is humane in the broadest sense. We seek to instill in people everywhere a discriminating, yet unabashed, reverence for nature and to balance that reverence with a profound belief in human possibilities. From the smallest community to the largest multinational organization, we seek to inspire others who can advance the cause of conservation.

We seek to be the voice for those creatures who have no voice. We speak for their future. We seek to apply the wealth of our talents, knowledge, and passion to making the world wealthier in life, in spirit, and in living wonder of nature.

worldwildlife.org

Archives

  • October 2025
  • September 2014

Categories

  • Features
  • News
  • Uncategorized

Recent posts

  • Hello world! October 31, 2025
  • Post With A Video September 5, 2014
  • Post With A Gallery September 5, 2014
  • Helping Kids September 5, 2014
  • No Sidebar September 4, 2014
  • No Sidebar September 4, 2014
  • Right Hand Sidebar September 4, 2014

Tell your story

Communicating your purpose is essential. Grassroots helps you get your message in front of your visitors clearly.

You can tell your story with images, video and text. This footer is made up completely out of widgets, so it’s easy to add, remove or rearrange content. You can also choose between a boxed or full width layout, and 1 and 4 columns.

You can customize this area and the right side where the social media icons are.