मैं एक प्लगइन में एक फ़ंक्शन को संशोधित करना चाहता हूं। यह इस तरह से प्लगइन की मुख्य फ़ाइल में घोषित किया गया है:
class WCPGSK_Main {
...
public function wcpgsk_email_after_order_table($order) {
...
}
}
इस तरह से वहाँ से बुलाया जोड़ें:
add_action( 'woocommerce_email_after_order_table', array($this, 'wcpgsk_email_after_order_table') );
मुझे लगता है कि यह कार्य करने के लिए संभव हो सकता है अगर कार्यों में कक्षा के लिए एक पहुँच थी। तब मैं कुछ इस तरह लिख पाऊंगा:
$wcpgsk = new WCPGSK_Main;
remove_action( 'woocommerce_email_after_order_table', array($wcpgsk, 'wcpgsk_email_after_order_table') );
function customized_wcpgsk_email_after_order_table($order) {
...
}
add_action( 'woocommerce_email_after_order_table', array($wcpgsk, 'customized_wcpgsk_email_after_order_table') );
मेरी सोच थी कि टास्क में क्लास का एक्सेस मिल जाए।
require_once('/wp-content/plugins/woocommerce-poor-guys-swiss-knife/woocommerce-poor-guys-swiss-knife.php');
$wcpgsk = new WCPGSK_Main;
...
लेकिन यह काम नहीं करता है क्योंकि प्लगइन की फ़ाइल शामिल है जब प्लगइन वर्डप्रेस में इनिशियलाइज़ हो रहा है, मुझे लगता है।
क्या प्लगइन की फ़ाइलों को छूने के बिना फ़ंक्शन को फिर से लिखने का एक तरीका है?