Ich versuche, wp_list_table zu verwenden, indem Sie eine erweiterte Klasse erstellen. Ich habe zwei Aktionen, um die Bulk-Update-Funktionalität zu durchlaufen. Allerdings weiß ich nicht genau, wie man die richtige case switch-Anweisung schreibt, um das resultierende Kontrollkästchen für Array-Aktionen basierend auf der ausgeführten Aktion zu setzen ... (siehe Ich weiß, was ich tun muss, aber nicht ganz weiß, wie es geht).Wie rende ich ein Bulk Edit-Kontrollkästchen auf wp_list_table
Dies ist das kleinste bisschen relatable Code, den ich habe, mit arbeiten:
/**
* Render the bulk edit checkbox
*
* @param array $item
*
* @return string
*/
function column_cb($item) {
return sprintf(
'<input type="checkbox" name="bulk-reset[]" value="%s" />', $item['id']
);
}
/**
* Method for name column
*
* @param array $item an array of DB data
*
* @return string
*/
function column_name($item) {
$delete_nonce = wp_create_nonce('sp_delete_customer');
$reset_nonce = wp_create_nonce('sp_reset_payouts');
$title = '<strong>' . $item['name'] . '</strong>';
$actions = [
'delete' => sprintf('<a href="?page=%s&action=%s&customer=%s&_wpnonce=%s">Delete</a>', esc_attr($_REQUEST['page']), 'delete', absint($item['id']), $delete_nonce),
'reset' => sprintf('<a href="?page=%s&action=%s&customer=%s&_wpnonce=%s">Reset</a>', esc_attr($_REQUEST['page']), 'reset', absint($item['id']), $reset_nonce)
];
return $title . $this->row_actions($actions);
}
/**
* Returns an associative array containing the bulk action
*
* @return array
*/
public function get_bulk_actions() {
$actions = array(
'bulk-delete' => 'Delete',
'bulk-reset' => 'Reset'
);
return $actions;
}
Überprüfung dieses ein letztes Mal, ich glaube, ich brauche eine Funktion, die auf den Namen Eigenschaft als entkam php echo Recht genannt wird ? Dann sollte diese Funktion entweder bulk-reset [] oder bulk-delete [] basierend auf $_post['delete-*']
richtig ???
Da dies über grübelt, ich habe zu Stift versucht, gemeinsam die Lösung, aber aus irgendeinem Grund, dass action_type
Funktion, die ich nicht gemacht nicht aufgerufen:
/**
* Render the bulk edit checkbox
*
* @param array $item
*
* @return string
*/
function column_cb($item) {
global $action_type;
return sprintf(
'<input type="checkbox" name="'.$action_type.'" value="%s" />', $item['id']
);
}
/**
* Pick the Checkbox Value based on post Value
*
*
* @return string
*
*/
public function action_type() {
if ((isset($_POST['action']) && $_POST['action'] == 'bulk-delete')
|| (isset($_POST['action2']) && $_POST['action2'] == 'bulk-delete')
) {
$output = "bulk-delete[]";
} else {
$output = "bulk-reset[]";
}
return $output;
}
Edit 2: Die Erkenntnis, dass wird nicht funktionieren, weil Das setzt den Wert post und ich habe es vor dem Laden der Seite gesetzt ... Ich denke, das bedeutet, dass ich den Array-Namen generisch haben muss und die Post-Aktion behandelt, wie man mit den Daten umgeht ... vielleicht sollte ich der Einfachheit halber einstellen Die Edit-Aktion für den gleichen Bulk-Delete-Dataset ist derselbe Satz an Checkboxen.
Edit 3: Ich kann nicht tun, was ich am Ende von edit2 vorschlagen, weil der Teil des Codes zum Ausführen der Aktionen vom Array-Namen des Beitrags abhängt und dass Array-Name beim Laden der Seite festgelegt wird. Ich weiß nicht recht, was ich tun soll.
ich denke, du denkst ich rede über die Inline-löschen pro Datensatz wie folgt aufgefüllt werden ?: http://puu.sh/oYE3s/daf006755d.png Ich spreche über alle Aktionsmöglichkeiten, die mit der gleichen einzelnen Checkbox verknüpft sind: http://puu.sh/oYE8x/5079d4d3c1.png Ich habe es gerade erst gemerkt fehlte ein Stück des Codes, der zeigte, dass seine zwei d verschiedene Aktionen – Frankenmint
jetzt Lösung? –
nein Ich arbeite immer noch durch ... mein zweiter Vorschlag funktioniert nicht – Frankenmint