0

もともと、カスタム WP プラグインで WP_List_Table を使用していなかったので、一括アクションを実行するために、onClick イベントでボタンを使用して、以下のコードを持つ jQuery 関数を呼び出します。

<button type="button" onclick="selected_payout()" class="button">Pay Selected</button>
<button type="button" onclick="multi_withdaw()" class="button">Pay All</button>

ここで、プラグインで WP_List_Table を使用することにしましたが、一括操作以外はすべて機能しています。以下は私の prepare_items() 関数のコードです。

    public function prepare_items()
   {
    $columns = $this->get_columns();
    $hidden = $this->get_hidden_columns();
    $sortable = $this->get_sortable_columns();

    $data = $this->table_data();
    usort( $data, array( &$this, 'sort_data' ) );

    $perPage = get_option('dragonpay_payout_settings')['entry_per_page'];
    $currentPage = $this->get_pagenum();
    $totalItems = count($data);

    $this->set_pagination_args( array(
        'total_items' => $totalItems,
        'per_page'    => $perPage
    ) );

    $data = array_slice($data,(($currentPage-1)*$perPage),$perPage);

    $this->_column_headers = array($columns, $hidden, $sortable);
    $this->items = $data;
    
    $this->process_bulk_action();
   }

以下は私の一括アクション機能で、ドロップダウンメニューがページに表示されています。ただし、適用ボタンをクリックしても何も起こりません。jQuery を効果的に呼び出す方法がわかりません。

    public function get_bulk_actions() {

        return array(
                'pay_selected' => __( 'Pay Selected' ),
                'pay_all'   => __( 'Pay All' ),
        );

     }

public function process_bulk_action() {
        
        // security check!
        if ( isset( $_POST['_wpnonce'] ) && ! empty( $_POST['_wpnonce'] ) ) {

            $nonce  = filter_input( INPUT_POST, '_wpnonce', FILTER_SANITIZE_STRING );
            $action = 'bulk-' . $this->_args['plural'];

            if ( ! wp_verify_nonce( $nonce, $action ) )
                wp_die( 'Nope! Security check failed!' );

        }

        $action = $this->current_action();

        switch ( $action ) {

            case 'pay_selected':
                //call the jquery selected_payout()
                break;

            case 'pay_all':
                //call the jquery multi_withdaw()            
                break;

            default:
                // do nothing or something else
                return;
                break;
        }

        return;
     }

この質問は他の人にはばかげているように思えますが、これに関する解決策を理解するためのアドバイスや提案をいただければ幸いです。

4

0 に答える 0