隐藏/更改WooCommerce管理员通知

时间:2017-05-25 09:05:33

标签: wordpress woocommerce hook-woocommerce hook-wordpress

嗨WooCommerce忍者!

我正在开发WooCommerce插件,每当我在顶部提交表单(保存更改按钮)时,都会显示更新通知,并且已经保存了您的设置。'。我如何隐藏或更改此通知,我使用woocommerce_show_admin_notice过滤器但不能在我的插件类中工作。以下是我的插件的代码的一部分。任何有关钩子的想法都会有用吗?

非常感谢!

<?php 
class name_of_plugin extends WC_Payment_Gateway {
   public $error = '';

   // Setup our Gateway's id, description and other values
   function __construct() {
    $this->id = "name_of_plugin";
    $this->method_title = __( "Name", 'domain' );
    $this->method_description = __( "Gateway Plug-in for WooCommerce", 'domain' );
    $this->title = __( "TFS VPOS", 'domain' );
    $this->icon = null;
    $this->has_fields = false;
    $this->init_settings();
    $this->init_form_fields();
    $this->title = $this->get_option( 'title' );


    $this->testurl = 'https://example.com/payment/api';
    $this->liveurl = 'https://example.com/payment/api';


    // Save settings
    if ( is_admin()) {
        add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) );
    }

    // Disable Admin Notice
    add_filter( 'woocommerce_show_admin_notice', array( $this, 'shapeSpace_custom_admin_notice' ), 10, 2 );
    // add the filter 
    add_filter( 'woocommerce_add_error', array( $this, 'filter_woocommerce_add_notice_type' ), 10, 1 ); 

   } // End __construct()

  // display custom admin notice
  public function filter_woocommerce_add_notice_type($true, $notice ) {
    // magic happen here...
    return $true;
  }

1 个答案:

答案 0 :(得分:1)

我看不到可以用来删除它的任何正确的钩子。

但这两个似乎有效。

我的第一个想法是重新加载页面,这样设置文本就会消失。这样的事情。

add_action( 'woocommerce_sections_checkout', 'woocommerce_sections_checkout' );
function woocommerce_sections_checkout() {

    if ( isset( $_GET['section'] ) && isset( $_REQUEST['_wpnonce'] ) && ( $_GET['section'] === 'paypal' ) 
        && wp_verify_nonce( $_REQUEST['_wpnonce'], 'woocommerce-settings' ) ) {

        WC_Admin_Settings::add_message( __( 'Your settings have been saved!', 'woocommerce' ) );
        wp_safe_redirect( wp_get_raw_referer() );
        exit();
    }
}

然后我的第二个选择是如果你想改变文字,我们可以使用过滤器gettext。

add_filter( 'gettext', 'woocommerce_save_settings_text', 20, 3 );
function woocommerce_save_settings_text( $translated_text, $text, $domain ) {

    if ( ( $domain == 'woocommerce' ) && isset( $_GET['section'] ) && ( $_GET['section'] === 'paypal' ) ) {
        switch ( $translated_text ) {
            case 'Your settings have been saved.' :
                $translated_text = __( 'Your awesome settings have been saved.', 'woocommerce' );
                break;
        }
    }
    return $translated_text;
}

请注意,此代码只是一个示例,适用于paypal设置。改变所需的一切。