Tuesday 15 September 2015

php - Adding back removed action, based on custom meta data wordpress -



php - Adding back removed action, based on custom meta data wordpress -

what trying is

input custom url user, save product meta. if there url set, not empty, remove add_to_cart button , place in button custom link. if not, add together fall-back show add together cart button , variations same used be.

now here how code looks -

add_action( 'init', array($this, 'woocommerce_custom_add_to_cart_remove_add_to_cart')); // goes in class constructor. function woocommerce_custom_add_to_cart_remove_add_to_cart() { remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 ); remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 ); remove_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30 ); remove_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 ); remove_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 ); add_action( 'woocommerce_single_product_summary', array($this, 'woocommerce_custom_add_to_cart_custom_button'), 30 ); add_action( 'woocommerce_simple_add_to_cart', array($this, 'woocommerce_custom_add_to_cart_custom_button'), 30 ); add_action( 'woocommerce_grouped_add_to_cart', array($this, 'woocommerce_custom_add_to_cart_custom_button'), 30 ); add_action( 'woocommerce_variable_add_to_cart', array($this, 'woocommerce_custom_add_to_cart_custom_button'), 30 ); add_action( 'woocommerce_external_add_to_cart', array($this, 'woocommerce_custom_add_to_cart_custom_button'), 30 ); } function woocommerce_custom_add_to_cart_custom_button() { global $post,$product; if($this->woocommerce_custom_add_to_cart_get_carturl() !='') echo '<form name="custom_cart_button" method="post" action="'.$this->woocommerce_custom_add_to_cart_get_carturl().'"><button type="submit" class="single_add_to_cart_button button alt">'.$this->woocommerce_custom_add_to_cart_get_carttext().'</button></form><br />'; else { // logic should go here handle fall back, , show default add together cart button. adding actions wont work. } }

try moving remove_action , add_action code hook product id such "woocommerce_before_single_product_summary" , check status within it, if matches remove default woocommerce hooks , add together hooks.

and not remove hook "woocommerce_single_product_summary -> woocommerce_template_single_add_to_cart" , add together since not needed.

add_action("woocommerce_before_single_product_summary", "test_func"); function test_func(){ global $post,$product; if( test-condition ){ remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 ); remove_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30 ); remove_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 ); remove_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart', 30 ); add_action( 'woocommerce_simple_add_to_cart', 'woocommerce_custom_add_to_cart_custom_button', 30 ); add_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_custom_add_to_cart_custom_button', 30 ); add_action( 'woocommerce_variable_add_to_cart', 'woocommerce_custom_add_to_cart_custom_button', 30 ); add_action( 'woocommerce_external_add_to_cart', 'woocommerce_custom_add_to_cart_custom_button', 30 ); } } function woocommerce_custom_add_to_cart_custom_button() { global $post,$product; echo '<form name="custom_cart_button" method="post" action="required_url"><button type="submit" class="single_add_to_cart_button button alt">button text</button></form><br />'; }

php wordpress wordpress-plugin

No comments:

Post a Comment