【问题标题】:How to override public static function of parent theme through functions.php in wordpress?如何通过wordpress中的functions.php覆盖父主题的公共静态函数?
【发布时间】:2020-05-13 15:03:55
【问题描述】:

这是在父主题中声明函数的方式,我想更改返回值逻辑,有人可以指导我正确的方向吗?

我尝试使用新逻辑和add_actionfunctions.php 中添加函数,但这没有帮助。

add_action('wp_ajax_calculate_price', array($this, 'ajax_calculate_price'));
add_action('wp_ajax_nopriv_calculate_price', array($this, 'ajax_calculate_price'));

public static function ajax_calculate_price( ) {
        $listing_id = $_POST['listing_id'];
        $tickets = isset($_POST['tickets']) ? $_POST['tickets'] : 1 ;


        $normal_price = (float) get_post_meta ( $listing_id, '_normal_price', true);
        $reservation_price  =  (float) get_post_meta ( $listing_id, '_reservation_price', true);
        $services_price = 0;
        if(isset($_POST['services'])){
            $services = $_POST['services'];
            $bookable_services = listeo_get_bookable_services($listing_id);
             $i = 0;
             foreach ($bookable_services as $key => $service) {
                $i++;
                if(in_array('service_'.$i,$services)) {
                  $services_price += (float) preg_replace("/[^0-9\.]/", '', $service['price']);

                }
             } 
        }
        $ajax_out['price'] = ($normal_price * $tickets) + $reservation_price + $services_price;
        wp_send_json_success( $ajax_out );
    }

【问题讨论】:

  • 欢迎使用 SO,您需要使用该功能实现什么。
  • 谢谢 :) 我想更改价格的计算方式。

标签: php wordpress function overriding overwrite


【解决方案1】:

根据您的编码,您正在使用 listeo wordpress 主题。 您正在调用函数listeo_get_bookable_services,它可能在您的主题functions.php 中不可用。因此,为了完成这项工作,请在 functions.php 中包含具有 listeo_get_bookable_services 函数的类。

【讨论】:

  • @Arpita 好的。如果以上答案对您有帮助。请不要忘记接受答案。
  • 嘿@droidDev,我最终做的完全不同,所以我不确定我是否可以将此标记为正确答案。
  • @Arpita Ok No Prbolem 我已经明确表示如果答案对您有帮助。
猜你喜欢
  • 1970-01-01
  • 2012-09-21
  • 2015-12-09
  • 1970-01-01
  • 2021-10-19
  • 1970-01-01
  • 2021-04-21
  • 2015-07-27
  • 2012-06-01
相关资源
最近更新 更多