Skip to content

Instantly share code, notes, and snippets.

@nextab
Created February 10, 2022 10:24
Show Gist options
  • Select an option

  • Save nextab/5c6cc992c06b76d754e2d8cbca3a60bb to your computer and use it in GitHub Desktop.

Select an option

Save nextab/5c6cc992c06b76d754e2d8cbca3a60bb to your computer and use it in GitHub Desktop.
Dies ist ein wenig Beispiel-Code, mit dem über PHP in ein File auf dem Webserver geschrieben wird.
function csv_update_action() {
$option_name = 'ots_points_updated' ;
$update_date = time();
if ( get_option( $option_name ) !== false ) {
// The option already exists, so we just update it.
update_option( $option_name, $update_date );
} else {
// The option hasn't been added yet. We'll add it with $autoload set to 'no'.
$deprecated = null;
$autoload = 'no';
add_option( $option_name, $update_date, $deprecated, $autoload );
}
$csv_url = $_POST['csv_url'];
$replace_url = get_home_url() . "/";
$csv_url = get_home_path() . str_replace($replace_url,"",$csv_url);
// echo '<p style="margin-top: 20px;"><strong>URL der übermittelten csv Datei: </strong>' . $csv_url . '</p>';
/*
$csvArray = ImportCSV2Array($csv_url);
foreach ($csvArray as $row)
{
echo "<p>" & $row['column1'] & "</p>";
echo "<p>" & $row['column2'] & "</p>";
echo "<p>" & $row['column3'] & "</p>";
}
*/
if (substr($csv_url, -4) != ".csv") { echo "<p><strong>Fehler! Es handelt sich um keine gültige Datei (.csv wird verlangt)!</strong></p>"; } else {
$row = 1;
if (($handle = utf8_fopen_read($csv_url)) !== FALSE) {
// echo "handle konnte geöffnet werden";
$excluded_users_id = 0;
$excluded_users = array();
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
// echo "<p> $num Felder in Zeile $row: <br /></p>\n";
for ($c=0; $c < $num; $c++) {
if($row == 1) {
if ($c == 0) {
echo "<h3>Header-Abgleich:</h3><p>";
}
switch($data[$c]) {
case "FirmaAListe":
$firma_id = $c;
echo "Spalte " . $c . ": Name der Firma (" . $data[$c] . ")<br />";
break;
case "Vorname":
$vorname_id = $c;
echo "Spalte " . $c . ": Vorname (" . $data[$c] . ")<br />";
break;
case "Name":
$nachname_id = $c;
echo "Spalte " . $c . ": Nachname (" . $data[$c] . ")<br />";
break;
case "COSSyID":
$cossyid_id = $c;
echo "Spalte " . $c . ": COSSy ID (" . $data[$c] . ")<br />";
break;
case "TelefonListe":
$telefon_id = $c;
echo "Spalte " . $c . ": Telefonnummer (" . $data[$c] . ")<br />";
break;
case "PLZListe":
$plz_id = $c;
echo "Spalte " . $c . ": PLZ (" . $data[$c] . ")<br />";
break;
case "OrtListe":
$ort_id = $c;
echo "Spalte " . $c . ": Ort (" . $data[$c] . ")<br />";
break;
case "StraßeListe":
$strasse_id = $c;
echo "Spalte " . $c . ": Straße (" . $data[$c] . ")<br />";
break;
case "StrasseListe":
$strasse_id = $c;
echo "Spalte " . $c . ": Straße (" . $data[$c] . ")<br />";
break;
case "Level aktuell":
$ots_level_id = $c;
echo "Spalte " . $c . ": Aktueller OTS Level (" . $data[$c] . ")<br />";
break;
case "Sum_Punkte":
$ots_punkte_aktuell_id = $c;
echo "Spalte " . $c . ": Aktuelle Anzahl OTS Punkte (" . $data[$c] . ")<br />";
break;
case "Sum_Punkte Eingang":
$ots_punkte_lifetime_id = $c;
echo "Spalte " . $c . ": Anzahl der insgesamt gesammelten OTS Punkte (ohne Abzüge) (" . $data[$c] . ")<br />";
break;
case "Sum_Punkte Ausgang":
$ots_punkte_redeemed_id = $c;
echo "Spalte " . $c . ": Anzahl der eingelösten OTS Punkte (" . $data[$c] . ")<br />";
break;
case "Punkte Quartal":
$ots_punkte_quarter_id = $c;
echo "Spalte " . $c . ": Anzahl der in diesem Quartal gesammelten OTS Punkte (" . $data[$c] . ")<br />";
break;
case "StoreID":
$cossyid_id = $c;
echo "Spalte " . $c . ": COSSy ID / Store ID (" . $data[$c] . ")<br />";
break;
default:
echo "Spalte " . $c . " (" . $data[$c] . ") konnte nicht zugeordnet werden!<br />";
}
if ($c == $num-1) echo "</p><hr />";
} else {
$ots_userliste_args = array(
'orderby' => 'ID',
'exclude' => $excluded_users
);
$ots_userliste = get_users($ots_userliste_args);
// if ($c == 1) echo "<h2>Beginn User-Loop</h2><p>";
foreach ($ots_userliste as $aktueller_ots_store) {
// echo "<p>Login-Name des aktuellen Stores: " . $aktueller_ots_store->user_login . "</p>";
// echo "<p>COSSy ID des Stores aus dem .csv File: " . $data[$cossyid_id] . "</p>";
if ($aktueller_ots_store->user_login == $data[$cossyid_id]) {
// echo "<p>Übereinstimmung beim Laden " . $data[$firma_id] . "</p>";
echo "<p>" . zuweisung_ots_usergroup_vorhanden($aktueller_ots_store->id, $data[$cossyid_id]) . "</p>";
update_user_meta($aktueller_ots_store->id,'ots_level', $data[$ots_level_id]);
update_user_meta($aktueller_ots_store->id,'ots_punkte_aktuell', $data[$ots_punkte_aktuell_id]);
update_user_meta($aktueller_ots_store->id,'ots_punkte_lifetime', $data[$ots_punkte_lifetime_id]);
update_user_meta($aktueller_ots_store->id,'ots_punkte_verwendet', $data[$ots_punkte_redeemed_id]);
update_user_meta($aktueller_ots_store->id,'ots_punkte_quartal', $data[$ots_punkte_quarter_id]);
echo "<p>Update beim Laden <strong>" . $data[$firma_id] . "</strong>:</p><p><strong>OTS Level:</strong> " . $data[$ots_level_id] . "<br />" . "<strong>OTS Punkte aktuell:</strong> " . $data[$ots_punkte_aktuell_id] . "<br />" . "<strong>OTS Punkte Lifetime:</strong> " . $data[$ots_punkte_lifetime_id] . "<br />" . "<strong>OTS Punkte eingelöst:</strong> " . $data[$ots_punkte_redeemed_id] . "<br />" . "<strong>OTS Punkte im Quartal:</strong> " . $data[$ots_punkte_quarter_id] . "</p><hr />";
$excluded_users[$excluded_users_id++] = $aktueller_ots_store->id;
break 2;
}
// echo $data[$c] . "<br />\n";
}
// echo "</p>";
}
}
$row++;
/* echo "<p>Ausgeschlossene User-IDs: </p>";
foreach($excluded_users as $single_excluded_user) {
echo "<p>User-ID: " . $single_excluded_user . "</p>";
} */
}
fclose($handle);
} // else echo "<p>handle konnte nicht geöffnet werden</p>";
}
}
function utf8_fopen_read($fileName) {
$fc = iconv('windows-1250', 'utf-8//IGNORE', file_get_contents($fileName));
$handle=fopen("php://memory", "rw");
fwrite($handle, $fc);
fseek($handle, 0);
return $handle;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment